| |
|
|
- Page 1 - |
|
| Die File text.txt möchte ich byteweise auslesen und dann sollen die Daten wie unten als Textdatei hergestellt bzw gesetzt werden. Ich möchte aus der Bytedatei Datazeilen erstellen. Als erstes die Länge und dann die Werte.
Mit Input möchte ich als erstes abfragen : 1. Name der File die eingelesen wird 2. Datazeilenanfang
1000 DATA 22 1010 DATA 169,32,133,250,169,3,133,251,160,0, 1020 DATA 177,250,168,177,250,32,237,253,136,208, 1030 DATA 248,96,
|
|
|
| |
|
|
|
| |
|
- Page 1 - |
|
| Wie erfrage ich LOF, welches ja in Profan nicht gibt?
mfg |
|
|
| |
|
|
|
| |
|
| |
|
|
|
| Wenn ich einen Namen eingebe der Falsch ist als Input zum Einlesen, müsste das Programm eigentlich beendet werden bzw nach waitkey springen. Tut es aber nicht, sondern geht weiter, wo Io l' Ausgabenamen eingeben kann.
Woran liegt das?
mfg KompilierenMarkierenSeparierendeclare a%, data_laenge%, data_anfang%,datei_laenge%,name_in$,name_out$
Window 20,20-400,400
Print Dateiname_in : ;
input name_in$
Assign #1,name_in$
OpenRW #1
If %IOResult
Print Datei kann nicht geöffnet werden.
else
Print Dateiname_out: ;
input name_out$
datei_laenge% = GetFileSize(#1)
Assign #2,name_out$
Rewrite #2
data_anfang%=1000
print #2,str$(data_anfang%); DATA ;datei_laenge%
data_laenge%=0
data_anfang%=data_anfang%+10
print #2,str$(data_anfang%); DATA ;
WhileLoop datei_laenge%
if data_laenge% < 10
a%=GetByte(#1)
print #2,str$(a%);,;
else
data_laenge%=0
data_anfang%=data_anfang%+10
print #2
print #2,str$(data_anfang%); DATA ;
a%=GetByte(#1)
print #2,str$(a%);,;
endif
data_laenge%=data_laenge%+1
EndWhile
Close #1
Close #2
endif
waitkey
./../funktionsreferenzen/xprofan/end/'>end
|
|
|
| |
|
|
|
Paul Glatz | Du musst dem Programm auch sagen dass es Beenden soll! |
|
|
| |
|
|
| |
|
- Page 2 - |
|
|
| If %IOResult Print File kann nicht geöffnet werden. else ..... ..... endif waitkey
Wenn die File nicht da ist müsste es eigentlich nach Waitkey springen und nicht hinter Else den 2. Namen einlesen. |
|
|
| |
|
|
|
E.T. | Lt. Quelltext 2 Posts vorher:
... INPUT ... Fragt den Namen der File ab (z.B. xyz.ab) APPEND #1,... Weist File xyz.ab die Dateinummer 1 zu OPENRW #1 ... Öffnet oder erzeugt bei nicht vorhandensein File Nummer 1 (xyz.ab) siehe Aiuto ...
Ist m.E. korrekt, %ioresult wird nicht gesetzt (wenn File geöffnet oder erzeugt werden kann), und folglich wird zu ...else gesprungen .
Wenn du eine bereits existierende File verwenden willst, empfehle ich @LoadFile$(S1,S2) , oder mittels @FileExists(S) überprüfen, ob die File da ist |
|
|
| Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 09.05.2009 ▲ |
|
|
|
|
| Jup, eindeutige Aussage. Haut wunderbar hin.
Die Textverarbeitung in Profan ist allererst gewöhnungsbedürftig opposto dem Standart.
mfg |
|
|
| |
|
|
|
RGH | 2peter Bierbach, Beitrag=52245, Zeitpunkt=09.05.2009
Jup, eindeutige Aussage. Haut wunderbar hin.
Die Textverarbeitung in Profan ist allererst gewöhnungsbedürftig opposto dem Standart.
mfg
Gegenüber welchem Standard? Was die Dateibearbeitung betrifft, lehnt sich XProfan sehr eng an den Pascal-Standard (TurboPascal, ObjectPascal, Delphi, etc.) an.
Saluto Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 09.05.2009 ▲ |
|
|
|
|
| TurboPascal, ObjectPascal
Darum ja.
Wenn du eof drin hast, warum nimmst du nicht lof mit rein....usw.
mfg |
|
|
| |
|
|
|
E.T. | ...wenn ich jetzt so drüber nachdenke... ??? Was hat Bytes einlesen mit Textverarbeiung zu tun ??? Wenn ich eine reine Text-File einlesen will (z.B. so eine Art .ini, Deine .txt ist ja nix anderes), dann mach ich das immer zeilenweise, nicht Byte per Byte ... |
|
|
| Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 10.05.2009 ▲ |
|
|
|
|
Dietmar Horn | Das hatte ich mich auch gleich gefragt. Aber weil Jemand offensichtlich noch nicht mal mit dem xprofanen Assign, Rewrite, Append, usw. umzugehen vermag, hatte ich mir ein Antwort-Posting bisher verkniffen ...
Saluto Dietmar |
|
|
| Multimedia für Jugendliche und junge Erwachsene - MMJ Hoyerswerda e.V. [...] Windows 95 bis Windows 7 Profan² 6.6 bis XProfan X2 mit XPSE Das große XProfan-Lehrbuch: [...] | 10.05.2009 ▲ |
|
|
|
|
| Dietmar ich merk du hast den Sachverstand nicht dazu , 40 jahre prägen ein.
Ich habe Apple IIe und Plus4 ,die ich in Basic programmiere. Weiterhin habe ich einen guten Assembler (6502) mit dem ich kleine Asm-Routinen schreibe und die möchte ich als Datazeilen einlesen und dann von Basic des Apple IIe oder Plus4 mit Call aufrufen.
Was macht nun mein Programm Dietmar, es macht folgendes : Ich schreibe das ASM-Programm : KompilierenMarkierenSeparieren Dann wird es compiliert und es entsteht eine Bin-File. Diese Bin-File wandle ich jetzt mit dem Programm um in un Textdatei, die dann so aussieht : KompilierenMarkierenSeparieren1000 DATA 38
1010 DATA 76,3,96,169,0,133,216,169,32,133,
1020 DATA 217,169,0,133,218,169,64,133,219,162,
1030 DATA 32,160,0,177,216,145,218,200,208,249,
1040 DATA 230,217,230,219,202,208,242,96,
Und oh wunder, jetzt hänge ich die File an das Basic, lese die 1. Zahl ein, die die länge vorgibt und dann die anderen Werte. Und schwupps habe ich meine Daten per einen Basicprogrammierer aufbereitet.
Hast du das verstanden als Leerer oder nicht, Dietmar?
Das ist übrigens das Profanprogram: KompilierenMarkierenSeparierendeclare a%, data_laenge%, data_anfang%,datei_laenge%,name_in$,name_out$
Window 20,20-400,400
Print Dateiname_in : ;
input name_in$
if FileExists(name_in$)=0
Print geht nisch...
else
Assign #1,name_in$
OpenRW #1
datei_laenge% = GetFileSize(#1)
Print Dateiname_out: ;
input name_out$
Assign #2,name_out$
Rewrite #2
data_anfang%=1000
print #2,str$(data_anfang%); DATA ;datei_laenge%
data_laenge%=0
data_anfang%=data_anfang%+10
print #2,str$(data_anfang%); DATA ;
WhileLoop datei_laenge%
if data_laenge% < 10
a%=GetByte(#1)
print #2,str$(a%);,;
else
data_laenge%=0
data_anfang%=data_anfang%+10
print #2
print #2,str$(data_anfang%); DATA ;
a%=GetByte(#1)
print #2,str$(a%);,;
endif
data_laenge%=data_laenge%+1
EndWhile
Close #1
Close #2
print fertisch...
endif
waitkey
end
mfg |
|
|
| |
|
|