VB code in PB

Fragen zu allen anderen Programmiersprachen.
Benutzeravatar
sen-me
Beiträge: 478
Registriert: 17.07.2005 16:02
Wohnort: Saarbrücken
Kontaktdaten:

VB code in PB

Beitrag von sen-me »

wie kann man dies in PB code übersetzen?

Code: Alles auswählen

Dim Symb
 Dim SymbNo As Integer
 Dim i As Integer
 If Trim(strLine) <> "" Then
  Symb = Scan(strLine)
  Select Case LCase(Symb(0))
   Case "dim"
    ' Hier Programmteil DIM
   Case "if"
    ' Hier Programmteil IF ... THEN
   Case "goto"
    ' Hier Programmteil GOTO
   Case "do"
    ' Hier Programmteil DO
   Case "loop"
    ' Hier Programmteil LOOP
   Case "print"
    ' Hier Programmteil PRINT
   Case Else
    If UBound(Symb) > 0 Then
     If Symb(1) = "=" Then
      ParseTerm strLine
     ElseIf Mid(Symb(0), 1, 1) = "#" Then
      ' Hier Labelinitialisierung
     Else
      MsgBox "Syntaxfehler.", vbCritical, "Fehler"
     End If
    End If
  End Select
 End If
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 »

Das läß sich so kaum übersetzen. Du kannst z.B. LinkListen verwenden für die einzelnen Zeilen.
Das Parsen könnte vereinfacht so aussehen:

Code: Alles auswählen

Select LCase(Trim(StringField(Symb.s, 1, " ")))
  Case "dim"
  Case "if"
  Default
    
EndSelect
wobei hierbei nur eine Zeile berücksichtigt ist
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
sen-me
Beiträge: 478
Registriert: 17.07.2005 16:02
Wohnort: Saarbrücken
Kontaktdaten:

Beitrag von sen-me »

und wie geht das?
If UBound(Symb) > 0 Then
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 »

sen-me hat geschrieben:und wie geht das?
If UBound(Symb) > 0 Then
UBound gibt es in PureBasic nicht, brauchst Du ja auch nicht, wenn Du LinkListen verwendest.
1:1 übersetzen geht nicht, Du mußt schon die Aufgabe des Codes in VB in eine Aufgabe von PB wandeln.
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
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:

Beitrag von Falko »

Aber nachmachen kann man ihn in PB , wie man an rings Beispielsource sieht. :mrgreen:

http://forums.purebasic.com/english/vie ... 3310#63310

MfG Falko
Bild
Win11 Pro 64-Bit, PB_6.11b1
Antworten