Deutsch
Forum

Erledigt: Bytes einlesen, ausgeben in eine neue Datei

 
- Seite 1 -


Die Datei 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 Datei 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
Ladeanzahl65
Herunterladen
 
08.05.2009  
 



 
- Seite 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 ich den 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
end
 
08.05.2009  
 




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



 
- Seite 2 -


If %IOResult
Print Datei kann nicht geöffnet werden.
else
.....
.....
endif
waitkey


Wenn die Datei 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 Datei ab (z.B. xyz.ab)
APPEND #1,... Weist Datei xyz.ab die Dateinummer 1 zu
OPENRW #1 ... Öffnet oder erzeugt bei nicht vorhandensein Datei Nummer 1 (xyz.ab) siehe Hilfe 
...

Ist m.E. korrekt, %ioresult wird nicht gesetzt (wenn Datei geöffnet oder erzeugt werden kann), und folglich wird zu ...else gesprungen .

Wenn du eine bereits existierende Datei verwenden willst, empfehle ich @LoadFile$(S1,S2) , oder mittels @FileExists(S)  überprüfen, ob die Datei 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 gegenüber 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 gegenüber 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.

Gruß
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-Datei einlesen will (z.B. so eine Art .ini, Deine .txt ist ja nix anderes), dann mach ich das immer zeilenweise, nicht Byte für 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 ...

Gruß
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-Datei.
Diese Bin-Datei wandle ich jetzt mit dem Programm um in eine 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 Datei an das Basic, lese die 1. Zahl ein, die die länge vorgibt und dann die anderen Werte. Und schwupps habe ich meine Daten für 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  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

4.178 Betrachtungen

Unbenanntvor 0 min.
Thomas Zielinski24.02.2022
H.Brill24.12.2016
Magda10.08.2014
Jupp Fitten05.06.2013
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


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