Bestimmte Zeile in einer Datei überschreiben.
Übersicht

FruscianteBetreff: Bestimmte Zeile in einer Datei überschreiben. |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
ich habe mal ein bisschen im Forum gesucht und mich auch schon mit seekfile beschäftigt, aber ich habe keine Konkrete Vorstellung davon wie man die Fileposition um eine Zeile verschieben kann. Die Datei komplett neu zu schreiben wäre in meinem Fall nicht sehr Praktisch da in den Dateien sehr verschiedene Daten stehen die evtl. im Moment der Überschreibung nicht vorhanden sind. Möchte auch gern ewig langen Spaghetticode vermeiden und desshalb nicht die Datei komplett auslesen neu schreiben und nur die Bestimmte Zeile überschreiben. Könnte mir vlt. jemand ein konkretes Beispiel (evtl. mit Code) geben wie ich meine Fileposition um eine Zeile nach unten verschiebe und diese Zeile neu schreibe? (Mit writeline werden vorherige strings oder zahlen ja sowieso überschrieben die dann an dieser stelle in der Datei stehen, oder?) Danke, Frusciante |
||
![]() |
skey-z |
![]() Antworten mit Zitat ![]() |
---|---|---|
2 Ideen hätte ich da
1. Alle Zeilen einlesen und in einem Dim speichern, dann die Zeile raussuchen, wo etwas eingesetzt wird, bis dorthin in ein weiters Dim kopieren, dann neue Zeile anhängen und daraufhin alle weiteren Zeilen kopieren. Mit Types wäre es wohl einfacher, da man hier mit After/Before und Insert arbeiten kann, ist auch wohl die am besten geeignete Methode für dein vorhaben 2. Alle Zeilen mit einer Zeilennummer versehen und dort dann nach entsprechender Zeile suchen und den neuen Eintrag einsetzen In jedem fall must du die Datei Laden, die Änderung vornehmen und wieder speichern, bestimmt können dir andere noch weitere Tipps geben, aber falls du unterschiedlich viele Zeichen pro Zeile hast, wird es mit Seekpos schwierig. |
||
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz BAC#57: 2. Platz |
Frusciante |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Dankefür den Denkanstoß, hast mir sehr geholfen ![]() Frusciante |
||
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: For t=0 To Spieleranzahl
Zeile(t) = ReadLine(file) Print Datei(t) Next Ich hätte es auch so gemacht! Dann kannst du jede Zeile verändern,(Beispiel:Zeile(29)="Hallllllo") und später wieder so speichern: Zitat: For t=0 To Spieleranzahl
Zeile(t) = WriteLine(file) Next |
||
Twitter
Download Jewel Snake! Windows|Android |
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: For t=0 To Spieleranzahl
AUA Code: [AUSKLAPPEN] Zeile(t) = WriteLine(file) Print Datei(t) Next For t=0 To Spieleranzahl
nunja
WriteLine(file,Zeile(t)) Print Datei(t) Next |
||
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Jetzt hab ich denselben Fehler gemacht, für den ich euch in gigis Thread geschimpft hab ![]() |
||
Twitter
Download Jewel Snake! Windows|Android |
Frusciante |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi, heute wollte ich die Funktion in mein Programm einbauen, allerdings bin ich jetzt auf ein sehr merkwürdiges Problem gestoßen. Hier erst mal der Code:
Code: [AUSKLAPPEN] datei=OpenFile("C:\Programme\...") For i=0 To 6 lines$(i) = ReadLine(datei) Next lines$(5) = aufstellungsposition ;ist eine einteger, dachte auch erst es liegt daran ;das ich keine integer in strings speichern kann, schein aber zu funktionieren For i=0 To 6 WriteLine datei, lines$(i) Next CloseFile datei Mein Problem ist nun, dass jedesmal wenn ich die Datei jetzt aufrufe noch die alten Daten dort drin stehen. D.h. der neue Wert (aufstellungsposition) wird gar nich in die Datei geschrieben. Aber der writeline Befehl ist doch korrekt so?! Seht ihr vlt. einen Fehler? Gruß, Frusciante |
||
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
aufstellungsposition? treffend! ich würde sogar sagen datei position! wenn nicht sogar:
FilePos file,0;0=anfang |
||
flashmaxel |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
SeekFile(stream,0) | ||
Real C programmers never die; they cast to void. |
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
ouch tilt X_X | ||
Frusciante |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke, hat funkioniert! | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group