Daten einflicken

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Chrise

Betreff: Daten einflicken

BeitragSo, Okt 03, 2010 15:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Leute!

Ich beschäftige mich wegen LlamaNet diesmal etwas mit Dateien. Jetzt kommt gleich aber schon die erste Frage bezüglich von Datensätzen, die in eigens angelegten Dateien gespeichert werden. Die einfache Formulierung der Frage lautet:

Wie kann ich Daten, bzw. Variablen in eine Datei einflicken, ohne dass nachfolgende Variablen überschrieben werden.

Beispiel: Ich schreibe in eine Datei zuerst einen String, dann ein Byte und dann einen Integer. Anschließend schließe ich die Datei.
Sobald ich etwas in der Datei ändern will, öffne ich sie wieder und jetzt kommt das Problem: Ich möchte sagen wir mal, zwischen dem String und dem Byte nochmal eine Interger in die Datei schreiben, aber so, dass das Byte und der letzte Integer nach hinten verschoben werden und nicht überschrieben.


Wie man das machen könnte, wäre mir ansich schon geläufig, aber da ich perfektionistisch denke, wäre mir die eleganteste und unaufwendigste Methode die Liebste.

Dankeschön Smile
lg Chrise
Llama 1 Llama 2 Llama 3
Vielen Dank an Pummelie, der mir auf seinem Server einen Platz für LlamaNet bietet.

BtbN

BeitragSo, Okt 03, 2010 16:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Die Datei einfach komplett neu anlegen.

Chrise

BeitragSo, Okt 03, 2010 18:49
Antworten mit Zitat
Benutzer-Profile anzeigen
BtbN hat Folgendes geschrieben:
Die Datei einfach komplett neu anlegen.


Na okay wird wohl auf etwas ähnliches hinauslaufen. Vll hab ich jetzt ne Lösung gefunden. Wenn sie gut funktioniert, werde ich sie hier Posten Wink
Llama 1 Llama 2 Llama 3
Vielen Dank an Pummelie, der mir auf seinem Server einen Platz für LlamaNet bietet.
 

Toasty

BeitragSo, Okt 03, 2010 20:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich bin mir nicht sicher, aber würde das nicht auch so gehen?
BlitzBasic: [AUSKLAPPEN]
Datei=WriteFile("Datei.txt")
WriteLine Datei,"Hallo."
CloseFile(Datei)

Datei=OpenFile("Datei.txt")
If Datei<>0 Then
Repeat
ReadLine(Datei)
Until Eof(Datei)

WriteLine Datei,"Neuer Inhalt"

CloseFile(Datei)
Else
Print"Fehler!"
End If
@AMD Phenom BE X4 2,5Ghz(Overclocked 2,61Ghz); 4GB DDR2; 512MB nVidia GeForce 8400gs; Win7 Home Premium 64bit
Lua for President!

Thunder

BeitragSo, Okt 03, 2010 20:11
Antworten mit Zitat
Benutzer-Profile anzeigen
@Toasty: Es geht afaik nicht darum, Daten an bestehende anzuhängen. Das würde man, wenn auch mit SeekFile und FileSize machen, denke ich.

@Topic: Ich kenne auch nur die Lösung die Datei komplett neu anzulegen.
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit

Eingeproggt

BeitragSo, Okt 03, 2010 20:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Neu anlegen wäre wohl das beste / einfachste / effektivste, ja.
Aber heißt nicht dass man nicht auch andere Lösungen finden kann, hier eine die meinem Alkohol-geschädigtem Hirn entsprang Laughing

Man legt sich n Dateiformat an, welches bereits alle möglichen / maximal benötigten Plätze "reserviert" und füllt diese bei Bedarf mit OpenFile etc. wie gewohnt.
Sprich die Datei sieht zB so aus:
Code: [AUSKLAPPEN]
Hallo    123

und nachdem zu zwischen diesen 2 Daten etwas einfügst so:
Code: [AUSKLAPPEN]
Hallo987123

Wie erschreckend einfach, aber euch in vielen Fällen platzverschwenderisch. Muss man abwägen.

mfG, Christoph.

EDIT: Nungut, nach kurzer Rücksprache mit Chrise stellt sich diese Lösung als so ziemlich unsinnig heraus. Sorry für den verzapften Müll.
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group