Behelfslösung Preprozessor SOH

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
juergenkulow
Beiträge: 188
Registriert: 22.12.2016 12:49
Wohnort: :D_üsseldorf-Wersten

Behelfslösung Preprozessor SOH

Beitrag von juergenkulow »

Code: Alles auswählen

;PB 5.71 Windows x64 
;CutSOHLine Datei
;Behelfslösung, Preprozessor erzeugt SOH und Schrott bei ASM-Makro mit Ausrufezeichen. 
;Ist nötig weil, !vmovups xmm1,xmm0 ohne Ausrufezeichen nach EnableASM Syntaxfehler erzeugt. 
Dateiname.s=ProgramParameter(0)
Datei=OpenFile(#PB_Any,Dateiname)
If 0=Datei : MessageRequester("Fehler","Kann Datei nicht öffnen: "+Dateiname) : End :EndIf 
Laenge=Lof(Datei)
*daten.Byte=AllocateMemory(Laenge+1)
ReadData(Datei,*daten,Laenge)
CloseFile(Datei)
*Ziel.Byte=AllocateMemory(Laenge+1)
*ptrZiel.Byte=*Ziel
While 0<>*daten\b
  If *daten\b<>#SOH 
    *ptrZiel\b=*daten\b
    *daten +1
    *ptrZiel +1
    ZielLaenge +1
  Else
    While *daten\b<>#CR And *daten\b<>#LF And *daten\b<>#Null
      *daten+1
    Wend   
  EndIf   
Wend
Datei=CreateFile(#PB_Any,Dateiname)
WriteData(Datei,*Ziel,ZielLaenge)
CloseFile(Datei) 
Edit:Behelfslösung
Zuletzt geändert von juergenkulow am 23.08.2019 18:03, insgesamt 1-mal geändert.
Nino
Beiträge: 1300
Registriert: 13.05.2010 09:26
Wohnort: Berlin

Re: Walkaround, Preprozessor SOH

Beitrag von Nino »

Ich war zunächst etwas ratlos, weil ich nicht wusste was dein Code mit "walkaround" (= Rundtanz) oder "walk around" (= herumlaufen) zu tun haben könnte ...
... bis ich darauf kam, dass du wahrscheinlich "workaround" (= Abhilfe, Behelfslösung) meinst. :D
Benutzeravatar
chi
Beiträge: 90
Registriert: 17.05.2007 09:30
Wohnort: Linz - Austria

Re: Walkaround, Preprozessor SOH

Beitrag von chi »

Habe ich bereits hier https://www.purebasic.fr/english/viewto ... =4&t=73419 als Bug eingetragen.
Aber freunde dich lieber mit deinem Workaround an, ich glaube nicht, dass Fred diesen (oder andere) pbcompiler.exe Fehler in nächster Zeit beheben wird...
Antworten