Seite 1 von 1

Wie kann man bitte alle Zeilen mit dem ";....." enfernen ?

Verfasst: 08.12.2016 10:34
von funkheld
Hallo, guten Tag.
Wie kann man bitte mit einem Purebasicprogramm alle Zeilen entfernen die mit ";" anfangen.
Der nachfolgende Text soll dann hochgerückt werden.

Danke.
GRuss

Code: Alles auswählen

                             ; Code generated by:
                             ;   ccz80++ version 1.0.4
                             ;   Cross compiler for Z80 with objects
                             ;   © 2014 Emilio Guerrero
                             ;   http://ccz80pp.webcindario.com/
                             ; Created Donnerstag, 8. Dezember 2016, 09:27:30

                             org  #8000
__begin_program:

                             ; File winktext.ccz80

                             ; main_0025 ( ) ;
                             call _main_0025                       ; Call to function routine

                             ; return ;
                             ret

                             ; main_0025_Code :

Re: Wie kann man bitte alle Zeilen mit dem ";....." enfernen

Verfasst: 08.12.2016 10:35
von RSBasic
Am besten die PB-Datei mit Notepad++ öffnen und mit einer RegEx-Anweisung alle Kommentare entfernen lassen.

Re: Wie kann man bitte alle Zeilen mit dem ";....." enfernen

Verfasst: 08.12.2016 11:03
von funkheld
Ich wollte es gern mit Purebasic machen.

Hier lese ich eine Zeile ein und gebe sie in einer neuen Datei aus.
Nur wie geht das entfernen der Zeile mit ";"?
Wie baue ich es hier ein ?

Danke.
Gruss.

Code: Alles auswählen

Procedure text()
  If ReadFile(0, "d:\"+name_in+".asm")
    laenge= Lof(0)
    
    CreateFile(1,"d:\"+name_in+".txt")
    
    While Eof(0) = 0
      text = ReadString(0)
      WriteString (1,text)
      WriteStringN(1,"")
    Wend
    
    CloseFile(0)
    CloseFile(1)
  EndIf
EndProcedure

Re: Wie kann man bitte alle Zeilen mit dem ";....." enfernen

Verfasst: 08.12.2016 11:47
von RSBasic
Achso, ich habe das am Anfang so verstanden, dass du das mit dem PB-Editor machen wolltest, aber wenn du mit einem eigenen Code machen möchtest, kannst du folgendes machen (primitive Vorgehensweise):
1. Du liest die Datei zeilenweise aus.
2. Du überprüfst jede Zeile, ob diese mit ";" anfängt. Am besten Trim() benutzen, um Leerzeichen und Tabs vorher zu entfernen. Wenn das erste Zeichen, welches du mit Mid() ermitteln kannst, ein Semikolon ist, dann kannst du diese Zeile ignorieren. Alle anderen Zeilen kannst du in eine neue Datei einfügen.

\\Edit:
Etwa so:

Code: Alles auswählen

text = ReadString(0)
If Mid(Trim(Trim(text), Chr(9)), 1, 1) <> ";"
  WriteString(1, text)
EndIf
(nicht getestet)

Re: Wie kann man bitte alle Zeilen mit dem ";....." enfernen

Verfasst: 08.12.2016 12:16
von funkheld
Danke für deine Hilfe.
Jetzt funktioniert es.

Gruss

Re: Wie kann man bitte alle Zeilen mit dem ";....." enfernen

Verfasst: 11.12.2016 14:05
von DarkSoul
Warum möchtest du die Kommentare aus dem Source entfernen? :o

Die sind doch wichtig! :mrgreen:

Außerdem werden die von PB-Compiler ohnehin ignoriert.

Die fertige Exe hat keine Kommentare mehr. Noch nichtmal mehr den Source. Das wird alles in Assembler übersetzt.

Ansonsten Zeile für Zeile durchgehen und schauen, ob ein Semicolion vorkommt. Dann ab dem ersten Semicolion abschneiden.
Wenn abgeschnitten wurde, nachprüfen, ob die Zeile nun leer ist. Wenn ja: Zeile löschen.

Re: Wie kann man bitte alle Zeilen mit dem ";....." enfernen

Verfasst: 11.12.2016 17:37
von funkheld
Hmmm...

Das ist eine ASM-Datei vom CPC-Emulator die ich entlause.
Wenn die erstellt wird vom ccz80++ , dann enthält sie für jede ASM-Zeile fast ein Kommentar, der für mich überflüssig ist.

Gruss