Italia
Foro

Erledigt: Bytes einlesen, ausgeben in un neue File

 
- 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,

1 kB
Hochgeladen:08.05.2009
Downloadcounter65
Download
 
08.05.2009  
 



 
- Page 1 -


Wie erfrage ich LOF, welches ja in Profan nicht gibt?

mfg
 
08.05.2009  
 



fileSize , getFileSize 
 
08.05.2009  
 



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
KompilierenMarkierenSeparieren
declare 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
 
08.05.2009  
 




Paul
Glatz
Du musst dem Programm auch sagen dass es Beenden soll!
 
08.05.2009  
 



 
- 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.
 
08.05.2009  
 




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
 
09.05.2009  
 




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
 
09.05.2009  
 




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 :
KompilierenMarkierenSeparieren
1000 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:
KompilierenMarkierenSeparieren
declare 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
 
10.05.2009  
 




Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

4.104 Views

Untitledvor 0 min.
Thomas Zielinski24.02.2022
H.Brill24.12.2016
Magda10.08.2014
Jupp Fitten05.06.2013
Di più...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie