Power Basic-Chat-Testen

Fragen zu allen anderen Programmiersprachen.
Benutzeravatar
Tafkadasom2k5
Beiträge: 1578
Registriert: 13.08.2005 14:31
Kontaktdaten:

Power Basic-Chat-Testen

Beitrag von Tafkadasom2k5 »

Hiho!
Ich versuche mich gerade während meine Praktikum mit PowerBasic.
Es wäre toll, wenn ihr mir bei meinen ersten Gehversuchen helfen könnten...

Ich habe mich hier an einem Chat versucht, und habe eigentlich nur aus "rumgebastel" herausgefunden, wie ich zB die UDP-Notify einbauen muss, damit PB ned meckert.Obs funktioniert is ne andere Sache...

Und hiermit fordere ich alle Power-Basic Kenner auf:
Debuggt meinen Source und/oder testet ihn :)


Gr33tz
Tafkadasom2k5

Code: Alles auswählen

#PBFORMS CREATED V1.51


#COMPILE EXE
#DIM ALL

'------------------------------------------------------------------------------
'   ** Includes **
'------------------------------------------------------------------------------
#PBFORMS BEGIN INCLUDES
#IF NOT %DEF(%WINAPI)
    #INCLUDE "WIN32API.INC"
#ENDIF
#PBFORMS END INCLUDES
'------------------------------------------------------------------------------

'------------------------------------------------------------------------------
'   ** Constants **
'------------------------------------------------------------------------------
#PBFORMS BEGIN CONSTANTS
%IDD_DIALOG1       =  101
%IDC_TEXTAUSGABE   = 1001
%IDC_TEXTEINGABE   = 1002
%IDC_BUTTON_Senden = 1003
%WM_Empfangen      = 10000
#PBFORMS END CONSTANTS
'------------------------------------------------------------------------------

'------------------------------------------------------------------------------
'   ** Declarations **
'------------------------------------------------------------------------------
DECLARE CALLBACK FUNCTION ShowDIALOG1Proc()
DECLARE FUNCTION ShowDIALOG1(BYVAL hParent AS DWORD) AS LONG
#PBFORMS DECLARATIONS
DECLARE FUNCTION Empfangen() AS STRING

GLOBAL hDlg  AS DWORD
GLOBAL myserver AS LONG
GLOBAL myname AS STRING

'------------------------------------------------------------------------------
'Meine Funktionen

FUNCTION ip2num (BYVAL sIP AS STRING) AS LONG
   LOCAL ix AS LONG
   LOCAL nResult AS LONG
   LOCAL pb AS BYTE PTR
   pb = VARPTR(nResult) + SIZEOF(nResult) - 1

   FOR ix = 4 TO 1 STEP -1
      @pb = VAL(PARSE$(sIP, ".", ix))
      DECR pb

   NEXT
FUNCTION = nResult
END FUNCTION

FUNCTION empfangen() AS STRING
   LOCAL sendIP&
   LOCAL sendPort&
   LOCAL mytext AS STRING

   UDP RECV myserver, FROM sendIP, sendPort, myText

   FUNCTION = myText
END FUNCTION




FUNCTION sendText(BYVAL newtext AS STRING) AS LONG
   LOCAL ip&
   ip = ip2num("192.168.73.255")
   UDP SEND myserver, AT ip , 2323, newtext
END FUNCTION



FUNCTION setText(BYVAL newtext AS STRING) AS LONG
   LOCAL oldtext AS STRING

   CONTROL GET TEXT hdlg, %IDC_TEXTAUSGABE TO oldtext
   newtext = CHR$(oldtext,13,10,newtext)
   CONTROL SET TEXT hdlg, %IDC_TEXTAUSGABE, newtext

END FUNCTION



FUNCTION GetName() AS STRING
   LOCAL myName AS STRING

   WHILE myname = ""
      myname = INPUTBOX$("Geben Sie Ihren Namen ein:",, "")
   WEND

   FUNCTION = myname
END FUNCTION


FUNCTION OeffneServer(BYVAL myPort AS LONG) AS LONG
   LOCAL myServer AS LONG
   LOCAL myError AS LONG

   myserver = FREEFILE

   UDP OPEN PORT 2323 AS myserver TIMEOUT 1000

   IF ERR THEN
      MSGBOX "Konnte Port nicht oeffnen oder UDP-Server nicht starten!"
      myError = 1
      ELSE
      UDP NOTIFY myServer, RECV TO hdlg AS %WM_Empfangen
   END IF

   IF myError <> 1 THEN
         FUNCTION = 1
      ELSE
         FUNCTION = 0
   END IF
END FUNCTION



'Ende meiner Funktionen




'------------------------------------------------------------------------------
'   ** Main Application Entry Point **
'------------------------------------------------------------------------------
FUNCTION PBMAIN()
    ShowDIALOG1 %HWND_DESKTOP
END FUNCTION
'------------------------------------------------------------------------------

'------------------------------------------------------------------------------
'   ** CallBacks **
'------------------------------------------------------------------------------
CALLBACK FUNCTION ShowDIALOG1Proc()



    SELECT CASE AS LONG CBMSG
        CASE %WM_INITDIALOG
            LOCAL myTEXT AS STRING
            myname = getname()

            IF oeffneserver(2323) THEN
               CONTROL SET TEXT cbhndl,%IDC_TEXTAUSGABE, "Server erfolgreich geöffnet!"
            ELSE
               CONTROL SET TEXT cbhndl,%IDC_TEXTAUSGABE, "Konnte Server oder Port nicht öffnen...!"
            END IF


        CASE %WM_NCACTIVATE
            STATIC hWndSaveFocus AS DWORD
            IF ISFALSE CBWPARAM THEN
                ' Save control focus
                hWndSaveFocus = GetFocus()
            ELSEIF hWndSaveFocus THEN
                ' Restore control focus
                SetFocus(hWndSaveFocus)
                hWndSaveFocus = 0
            END IF

        CASE %WM_COMMAND
            ' Process control notifications
            SELECT CASE AS LONG CBCTL
                CASE %IDC_TEXTAUSGABE

                CASE %IDC_TEXTEINGABE

                CASE %IDC_BUTTON_Senden
                    IF CBCTLMSG = %BN_CLICKED OR CBCTLMSG = 1 THEN
                     CONTROL GET TEXT cbhndl, %IDC_TEXTEINGABE TO myTEXT
                     CONTROL SET TEXT cbhndl, %IDC_TEXTEINGABE, ""
                     myText = myName + ": " + myText
                     setText(myTEXT)
                     sendText(myText)
                    END IF

               CASE %WM_Empfangen
                  settext(empfangen())

               END SELECT





    END SELECT
END FUNCTION
'------------------------------------------------------------------------------

'------------------------------------------------------------------------------
'   ** Dialogs **
'------------------------------------------------------------------------------
FUNCTION ShowDIALOG1(BYVAL hParent AS DWORD) AS LONG
    LOCAL lRslt AS LONG

#PBFORMS BEGIN DIALOG %IDD_DIALOG1->->


    DIALOG NEW hParent, "Marc-Chat Version 1.0", 244, 137, 201, 132, _
        %WS_POPUP OR %WS_BORDER OR %WS_DLGFRAME OR %WS_CAPTION OR _
        %WS_SYSMENU OR %WS_MINIMIZEBOX OR %WS_MAXIMIZEBOX OR _
        %WS_CLIPSIBLINGS OR %WS_VISIBLE OR %DS_MODALFRAME OR %DS_3DLOOK OR _
        %DS_NOFAILCREATE OR %DS_SETFONT, %WS_EX_CONTROLPARENT OR %WS_EX_LEFT _
        OR %WS_EX_LTRREADING OR %WS_EX_RIGHTSCROLLBAR, TO hDlg

    CONTROL ADD TEXTBOX, hDlg, %IDC_TEXTAUSGABE, "", 5, 5, 185, 90, %WS_CHILD _
        OR %WS_VISIBLE OR %ES_LEFT OR %ES_MULTILINE OR %ES_AUTOHSCROLL OR _
        %ES_READONLY, %WS_EX_CLIENTEDGE OR %WS_EX_LEFT OR %WS_EX_LTRREADING _
        OR %WS_EX_RIGHTSCROLLBAR

    CONTROL ADD TEXTBOX, hDlg, %IDC_TEXTEINGABE, "", 5, 100, 150, 25, _
        %WS_CHILD OR %WS_VISIBLE OR %WS_TABSTOP OR %ES_LEFT OR %ES_MULTILINE _
        OR %ES_AUTOHSCROLL, %WS_EX_CLIENTEDGE OR %WS_EX_LEFT OR _
        %WS_EX_LTRREADING OR %WS_EX_RIGHTSCROLLBAR

    CONTROL ADD BUTTON,  hDlg, %IDC_BUTTON_Senden, "Absenden", 160, 105, 40, _
        15
#PBFORMS END DIALOG

    DIALOG SHOW MODAL hDlg, CALL ShowDIALOG1Proc TO lRslt

#PBFORMS BEGIN CLEANUP %IDD_DIALOG1
#PBFORMS END CLEANUP

    FUNCTION = lRslt
END FUNCTION





'-------------------------------ENDE-------------------------------------

:allright:
OpenNetworkConnection() hat geschrieben:Versucht eine Verbindung mit dem angegebenen Server aufzubauen. 'ServerName$' kann eine IP-Adresse oder ein voller Name sein (z.B.: "127.0.0.1" oder "ftp.home.net").
php-freak hat geschrieben:Ich hab die IP von google auch ned rausgefunden!
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Power Basic-Chat-Testen

Beitrag von Kiffi »

> Und hiermit fordere ich alle Power-Basic Kenner auf:

ähm, hatten wir das ncht schon mal?

http://forums.purebasic.com/german/view ... 11&start=5

Nicht, dass ich Dir nicht helfen will, aber ich denke, dass die Jungs und
Mädels in obigen Forum evtl. vorhandene Fehler/Unschönheiten viel schneller
finden werden als wir.

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
Tafkadasom2k5
Beiträge: 1578
Registriert: 13.08.2005 14:31
Kontaktdaten:

Beitrag von Tafkadasom2k5 »

Jaha, aber doppelt hällt besser, ne?

Danke trotzdem ;)
OpenNetworkConnection() hat geschrieben:Versucht eine Verbindung mit dem angegebenen Server aufzubauen. 'ServerName$' kann eine IP-Adresse oder ein voller Name sein (z.B.: "127.0.0.1" oder "ftp.home.net").
php-freak hat geschrieben:Ich hab die IP von google auch ned rausgefunden!
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Die Chancen sind trotzdem sehr gering, das Du hier jemanden findest.
1. PowerBasic ist im Vergleich zu PureBasic, erheblich teurer.
2. Es gibt nur englische Hilfe dazu.
3. PowerBasic ist in Europa nicht allzu sehr verbreitet. In USA ist es sehr beliebt. (Fast so beliebt wie LibertyBasic :mrgreen: )
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Tafkadasom2k5
Beiträge: 1578
Registriert: 13.08.2005 14:31
Kontaktdaten:

Beitrag von Tafkadasom2k5 »

ts-soft hat geschrieben: (Fast so beliebt wie LibertyBasic :mrgreen: )
...stars 'n stripes.. ^^

Ehrlich gesagt mag ich PowerBasic auch nicht so gerne, aber was will man machen, wenn man seine Chancen wahrnehmen möchte Fachinformatiker zu werden...

Gr33tz
Tafkadasom2k5
OpenNetworkConnection() hat geschrieben:Versucht eine Verbindung mit dem angegebenen Server aufzubauen. 'ServerName$' kann eine IP-Adresse oder ein voller Name sein (z.B.: "127.0.0.1" oder "ftp.home.net").
php-freak hat geschrieben:Ich hab die IP von google auch ned rausgefunden!
brandelh
Beiträge: 18
Registriert: 28.03.2005 21:30
Wohnort: Germersheim
Kontaktdaten:

Beitrag von brandelh »

Hallo,

PowerBasic in deutsch: www.powerbasic.de
und hier ist mehr los (auf englisch): www.powerbasic.com

PowerBasic ist schon OK, ich habe beides, allerdings keine Ahnung vom Chaten, sorry ...

Manchmal suche ich mich in PureBasic (kam bei mir später) richtig dumm und dämlich nach den Funktionen wie z.B. msgbox (so heißt das in fast allen Sprachen die ich kenne ...).

Funktionen gibt es hier auch nicht, sondern nur proceduren mit Rückgabewert. Allerdings ist die Unterstützung durch integrierte Bibliotheken, und die IDE hier besser ...

Der Vorgänger von PowerBasic, TurboBasic für DOS war DER Basiccompiler schlecht hin (QuickBasic - ist kein Compiler) und auch sehr beliebt in Deutschland. Ich hatte PowerBasic DOS in allen Versionen bis zum Schluß.
Die DLL-Compiler habe ich mir nicht mehr angesehen, da ich beruflich Clipper / Xbase++ programmiere.
Ich war sehr überrascht als PowerBasic CC3.0 und Win7.0 herauskamen und habe damals beides geordert. War zwar deutlich teurer als PureBasic, aber die Syntax ist für mich eingänglicher (die bin ich schon seit vielen Jahren gewohnt. PureBasic habe ich mir dann auch gekauft, da es auch für Linux verfügbar ist. Vergleichen kann ich beide nicht, da kenne ich mich mit PureBasic zu wenig aus.

Zur Zeit versuche ich einer Procedur beizubringen 2 Rückgabewerte zu haben, einen direkten und einen über einen Parameter ... ich denke dafür muß ich jetzt einen Thread aufmachen.

Tschüß
Hubert
Frank Smart
Beiträge: 26
Registriert: 20.07.2005 15:21

Beitrag von Frank Smart »

¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤
Analysis report: TEST.BAS + include files. Generated 10-01-2006, 21:30:23
478 lines scanned in 0.013 seconds (2271683 lines/minute)
¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤
MAIN + INCLUDE FILES
--------------------------------------------------------------------------------
C:\backup\test.bas [Main source file]

¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤
UN-USED FUNCTIONS (exported, or in incl. files, may be used by other programs)
--------------------------------------------------------------------------------

¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤
UN-USED SUBS (exported, or in incl. files, may be used by other programs)
--------------------------------------------------------------------------------

¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤
DECLARED, BUT NON-EXISTING SUB/FUNCTION(S)
--------------------------------------------------------------------------------

¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤
EXISTING, BUT NON-DECLARED SUB/FUNCTION(S)
--------------------------------------------------------------------------------
1 FUNCTION ip2num [test.bas] : 44
1 FUNCTION sendText [test.bas] : 71
2 FUNCTION setText [test.bas] : 79
1 FUNCTION GetName [test.bas] : 90
1 FUNCTION OeffneServer [test.bas] : 101

¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤
UN-USED GLOBAL VARIABLES
--------------------------------------------------------------------------------

¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤
UN-USED LOCAL VARIABLES
--------------------------------------------------------------------------------

¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤
GLOBAL/LOCAL MIX - WARNING!
Following global variable name(s) exist in both global and local
form. While the compiler allows this, special care must be taken
to avoid hard-to-find errors. Please check them out carefully.
--------------------------------------------------------------------------------
myserver [test.bas] : 38
local in test.bas : 102
myname [test.bas] : 39
local in test.bas : 91

¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤
TOTAL REFERENCE COUNT - (Count, Name, [declared in File] : at Line number)
Lists how many times the following has been called/used (zero = un-used)
--------------------------------------------------------------------------------
FUNCTIONS:
1 ip2num [test.bas] : 44
1 empfangen [test.bas] : 58
1 sendText [test.bas] : 71
2 setText [test.bas] : 79
1 GetName [test.bas] : 90
1 OeffneServer [test.bas] : 101
1 ShowDIALOG1Proc [test.bas] : 141
1 ShowDIALOG1 [test.bas] : 200

SUBS:

GLOBAL VARIABLES:
8 hDlg [test.bas] : 37
6 myserver [test.bas] : 38
6 myname [test.bas] : 39

¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤
STRING LITERALS

Line Text [test.bas]
--------------------------------------------------------------------------------
94 Geben Sie Ihren Namen ein
110 Konnte Port nicht oeffnen oder UDP-Server nicht starten
151 Server erfolgreich geöffnet
153 Konnte Server oder Port nicht öffnen
206 Marc-Chat Version
223 Absenden
Ich denke ein Mix aus gobalen und lokalen Variablen macht deine Probleme.

Gruß,

Frank
Benutzeravatar
Tafkadasom2k5
Beiträge: 1578
Registriert: 13.08.2005 14:31
Kontaktdaten:

Beitrag von Tafkadasom2k5 »

Hey, ich habe gerade erst diese Antwort auf meine Frage gelesen...

Was ist das für ein Programm womit du meinen Source analysierst? Ich arbeite inzwischen mehr mit Power Basic, und das Programm sieht sehr vielversprechend aus...

Gr33tz
Tafkadasom2k5
OpenNetworkConnection() hat geschrieben:Versucht eine Verbindung mit dem angegebenen Server aufzubauen. 'ServerName$' kann eine IP-Adresse oder ein voller Name sein (z.B.: "127.0.0.1" oder "ftp.home.net").
php-freak hat geschrieben:Ich hab die IP von google auch ned rausgefunden!
Benutzeravatar
Falko
Admin
Beiträge: 3535
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:

Powerbasic 8.04 Update mit echten 32-Bit-Compiler

Beitrag von Falko »

Nun gibt es auch von Powerbasic ein kostenloses Update auf
einen echten 32-Bit - Compiler mit Vista 64-Bit-Unterstützung.

Grüße, Falko
Bild
Win11 Pro 64-Bit, PB_6.11b1
super_castle
Beiträge: 557
Registriert: 29.11.2005 15:05

Beitrag von super_castle »

hallo nimm das gfa32-basic, ist jetzt freeware, kostete vor 5 jahren noch über 400 euro. dieses gfa32-basic hat in windows fast die gleichen funktionen wie powerbasic und ist in der ausführung fast genauso schnell.
vorteil, ist komplett in deutsch.
Antworten