Writebyte - Problemchen
Übersicht

CO2ehemals "SirMO"Betreff: Writebyte - Problemchen |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
Ich komme mal wieder mit einem Problem bei einem Befehl zu euch... Folgende Lage: Ich habe eine Funktion, die Daten Zusammenfasst. (BlitzBasic: [AUSKLAPPEN] Function SummerizeData(file1$, file1endung$, file2$, StartPoint$)) Und eine die zusammengefasste Daten wieder liest (BlitzBasic: [AUSKLAPPEN] Function ReadSummerizedData$(file$, Startpoint$)) So, Wenn ich jetzt aber eine 3D-Datei (auch bei anderen Datein, z.b.: Textdateien) zusammenfasse und danach wieder unzusammenfasse, kommt ein Total anderer Code dabei raus Da Bytes allerdings Buchstaben und Zeichen sind, kann der Fehler eigentlich nur bei Writebyte() oder Readbyte() liegen, wie immer bedanke ich mich für hilfe im vorraus, mfG, SirMO |
||
mfG, CO²
Sprachen: BlitzMax, C, C++, C#, Java Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti |
![]() |
Thunder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wie ich dir schon einmal sagte, spekuliere ich nun wieder darauf, dass du Probleme mit Zeilenumbrüchen bekommen hast.
Außerdem besteht bei deinem Code enormes Optimierungspotenzial und da ich ihn im Moment nicht begreife, kann ich dir nur Mal dazu raten ein paar Optimierungen vorzunehmen und den Code durchzugehen, du musst schließlich am besten wissen, was er tut. mfg Thunder |
||
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit |
CO2ehemals "SirMO" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ok, ich werde versuchen ihn zu Optimieren (auch wenn ich dachte, dass er so funktioniert...)
thx für die antwort, mir bleibt aber noch eine Frage: Setzen Befehle wie Writebyte und Readbyte den Zeiger ein Byte nach vorn, nachdem die Funktion ausgeführt wurde? |
||
mfG, CO²
Sprachen: BlitzMax, C, C++, C#, Java Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti |
![]() |
Pummelie |
![]() Antworten mit Zitat ![]() |
---|---|---|
wenn du den dateizeiger meinst.. klar... | ||
It's done when it's done. |
CO2ehemals "SirMO" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
wirklich? Weil die Dateien immer kleiner waren als das original (also wenn ich nur WriteByte oder ReadByte benutzt habe, deshalb steht oben auch "Seekfile" in der hauptschleife...) | ||
mfG, CO²
Sprachen: BlitzMax, C, C++, C#, Java Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti |
![]() |
Thunder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ist doch logisch. Du hast in der Hauptschleife der Auseinandernehm-Funktion ein Readline. Da wird eine Zeile ausgelesen, die du nirgends an die ausgegebene Datei anhängst.
Außerdem ist das SeekFile vollkommen unnötig in der Schleife, weil eben alle Read und Write-Befehle den Dateizeiger um X Stellen (je nachdem welcher Datentyp) verschieben. mfg Thunder |
||
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit |
CO2ehemals "SirMO" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das Readline() Sucht ja nur die Endmarke, da ich mir aber überlegt habe, erst die größe des Files zu ermitteln und diese dann einzutragen fällt das natürlich weg...,
Apropos ich merke gerade, dass der Code veraltet ist, hier die neuen Funktionen: SCHREIBEFUNKTION BlitzBasic: [AUSKLAPPEN] Function SummerizeData(file1$, file1endung$, file2$, StartPoint$) Writeline und Readline wurden in der Schleife benutzt, da Writebyte und Readbyte die Zeilen nicht richtig schreiben oder auslesen (Die Dateien sind nach ein - und wiederauspacken vom Programm mit dem sie erstellt wurden nicht mehr lesbar) LESEFUNKTION BlitzBasic: [AUSKLAPPEN] Function ReadSummerizedData$(file$, Startpoint$) |
||
mfG, CO²
Sprachen: BlitzMax, C, C++, C#, Java Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti |
- Zuletzt bearbeitet von CO2 am Fr, Nov 05, 2010 16:17, insgesamt einmal bearbeitet
![]() |
Thunder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich rede von dem Code:
Code: [AUSKLAPPEN] For x = 0 To size
WriteByte schreibefile, ReadByte(lesefile) springbyte = springbyte + 1 SeekFile(schreibefile, springbyte) SeekFile(lesefile, springbyte) sucheendmarke = ReadLine(lesefile) Next ... Edit: Ups, entschuldige bitte, der Code sah der anderen Funktion so ähnlich. |
||
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit |
- Zuletzt bearbeitet von Thunder am Fr, Nov 05, 2010 16:29, insgesamt einmal bearbeitet
CO2ehemals "SirMO" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ist Ja überarbeitet (Post vor deinem) | ||
mfG, CO²
Sprachen: BlitzMax, C, C++, C#, Java Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group