Zeile in TXT-File ändern

Allgemein (egal ob VB, Java oder C/C++) gefragt:

Wie ändert man am elegantesten eine Zeile in einem Text-File, z.B.: Wie ändert man einen Wert in einer INI-Datei?
Es kann doch nicht sein, dass man die ganze Datei in ein Array einliest, und beim erneuten schreiben auf den zu schreibenden Zeilenanfang (z.B. "Printer = ") wartet und diese Zeile dann manipuliert - das ist Laufzeittechnisch ja eine kleien Katastrophe, wenn die Datei etwas länger ist…

Hi,
dazu gibt es API-Funktionen:

VB-Beispiel aus dem API-Guide (http://www.allapi.net):

Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long
Private Sub Form\_Load()
 'KPD-Team 1999
 'URL: http://www.allapi.net/
 'E-Mail: [email protected]
 Dim Ret As String, NC As Long
 'Write the setting to the file (c:\test.ini) under
 ' Project1 -\> Keyname
 WritePrivateProfileString App.Title, "KeyName", "This is the value", "c:\test.ini"
 'Create a buffer
 Ret = String(255, 0)
 'Retrieve the string
 NC = GetPrivateProfileString(App.Title, "KeyName", "Default", Ret, 255, "C:\test.ini")
 'NC is the number of characters copied to the buffer
 If NC 0 Then Ret = Left$(Ret, NC)
 'Show our string
 MsgBox Ret
 'Delete the file
 Kill "c:\test.ini"
End Sub

Gruß

J.

Hi,
dazu gibt es API-Funktionen:

…die aber auch nichts anderes machen. Um eine Textdatei zu ändern muß man IMMER die. alte Datei bis zur Änderung einlesen und neu schreiben, die zu ändernde Stelle schreiben und dann den Rest schreiben. Darum kommt man nicht herum.
Einzige Ausnahme: Man will nur Zeichen ändern ohne die Länge der Zeilen zu verändern. Dann kann man im Binary oder Random-Acces-Modus zugreifen.

cu, holli

dazu gibt es API-Funktionen:

…die aber auch nichts anderes machen.

…sage ich doch. Aber man programmiert nicht den Krempel extra, wenn es schon xfach geprüfte Funktionen dafür gibt.

Gruß

J.