also wenn das die komplette Procedure sein soll... Chaos
Ich gehe mal davon aus, das eine C:\Upgrade.txt existiert, daher macht es
wenig Sinn,sie erst einzulesen und im gleichem Atemzug wieder mit genau
demselben Wert wieder zu schreiben.
aber da steckt noch mehr Fehler drin
Code: Alles auswählen
ReadFile(1, "C:\Games\Upgrade.txt")
While Eof(1) = 0
Code$+ReadString(1)+Chr(10)
Wend
Code$ = Right(Code$, Len(Code$)-FindString(Code$, "Version", 0)+1)
Code$ = Left(Code$, FindString(Code$, "für den Digi-Runner", 0))
CreateFile(1, "C:\version.txt")
WriteString(1, Code$)
CloseFile(1)
sollte besser :
Code: Alles auswählen
If ReadFile(1, "C:\Games\Upgrade.txt")
While Eof(1) = 0
Code$=ReadString(1)
Code$ = Right(Code$, Len(Code$)-FindString(Code$, "Version", 0)+1)
Code$ = Left(Code$, FindString(Code$, "für den Digi-Runner", 0))
Wend
CloseFile(1)
EndIf
Man sollte immer schön brav Fehlerquellen ausmerzen, daher IF READFILE usw.
Die Code$ auswertung muss innerhalb der While-Wend-Schleife passieren,
sonst wird nur die allerletzte Zeile deines Upgrade.txt gelesen.
Ich weiss ja nicht wie das Textfile aufgebaut ist, aber eigentlich braucht man
kein CHR(10) da das PB selbst erkennen sollte, wann die Zeile beendet ist.
Aber Warum dein Programm "wegsemmelt" kann ich dir höchstens sagen,
wenn ich das komplette Listing zu sehen kriege.
Edit:
Wenn du an der "ich habe einen Beschreibungstext und er soll mir die
Versionsnummer rausfiltern" Strategie festhalten willst :
Code: Alles auswählen
Procedure.s Version()
If ReadFile(1,"C:\Games\Upgrade.txt")
While Eof(1)=0
code$=ReadString(1)
Position=FindString(code$,"Version",1)
If Position>0
code$=Mid(code$, Position + Len("Version ") ,5)
Break
EndIf
Wend
CloseFile(1)
EndIf
ProcedureReturn code$
EndProcedure
und dann in der Open_Windows Procedure
Code: Alles auswählen
StatusBarText(0, 1, "Version: " + Version(), #PB_StatusBar_BorderLess)
Damit kannst du dann ein Upgrade.txt verfassen, das wie eine Readme
aufgebaut ist und beim erstenmal wenn das Wort Version aufkreuzt, wie diese
genommen. Wobei du dann drauf achten solltest, das die Versionsnummer
immer aus der gleichen Anzahl an Zeichen besteht.
Also in deinem Bsp. "1.1.4"=5 ansonsten einfach die MIDFunktion ändern.