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

Für allgemeine Fragen zur Programmierung mit PureBasic.
funkheld
Beiträge: 651
Registriert: 31.12.2009 11:58

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

Beitrag 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 :
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

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

Beitrag von RSBasic »

Am besten die PB-Datei mit Notepad++ öffnen und mit einer RegEx-Anweisung alle Kommentare entfernen lassen.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
funkheld
Beiträge: 651
Registriert: 31.12.2009 11:58

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

Beitrag 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
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

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

Beitrag 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)
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
funkheld
Beiträge: 651
Registriert: 31.12.2009 11:58

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

Beitrag von funkheld »

Danke für deine Hilfe.
Jetzt funktioniert es.

Gruss
Benutzeravatar
DarkSoul
Beiträge: 689
Registriert: 19.10.2006 12:51

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

Beitrag 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.
Bild
funkheld
Beiträge: 651
Registriert: 31.12.2009 11:58

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

Beitrag 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
Antworten