Blockweise in Datei schreiben

Hey,

ich versuche gerade folgendes (ich reduziere das hier mal aufs wesentliche):

Ich habe Datensätze, welche ich in eine Textdatei schreiben will.
Sie bestehen nur aus 2 Strings, wo ich nicht weiß,
wie groß sie sind.
Aber ich würde gern die Größe festlegen auf meinetwegen
30 Zeichen pro String.

Nun möchte ich diese Datensätze in eine Textdatei schreiben und darauf mit einem Index zugreifen.

In VB6 hab ich das gelöst, in dem ich ein Type erstellt hab.
Dann hab ich davon ein Array erstellt. Beim Speichern der Daten hab ich dieses Array immer komplett gespeichert.

Open (Datei) For Binary As 1
Put #1, , Array meines Types
Close #1

Beim Laden der Daten konnte ich dann mit einem Index die einzelnen Sätze auslesen und verarbeiten.

Open (Datei) For Random As 1 Len = Len(Instanz meines Types)
For i = 1 To 100
Get #1, i, Instanz meines Types
_Array meines Types>(i) = Instanz meines Types
Next i
Close #1

Die Umsetzung in .NET bekomm ich nicht so richtig hin. Ich weiß einfach nicht, wie ich das mit den ganzen Streams so hinbekomme,
das feste Blöcke geschrieben werden.

Vielen Dank im Vorraus
Hendrik_

Ja schreibe Dir doch einfach eine Inidatei mit follgender Prozedure kommst Du Drauf und Trenne die Datensätze mit dem „;“, dann kannst Du mit der Split Methode das Chaos wieder Einlesen, wenn nötig. Als Key kannst Du einfach eine Nummer aufzählen (as Long) und diese mir CStr(Variable) an die Jeweilige Inifunktion Übergeben. Um die Public Class T brauchtst Du dich nicht weiter zu Kümmern, da sind einfach dei Deklarationen drin. Achte Darauf, das Die Stringlänge in diesem Fall in der Funktion GetIniString durch StringBuilder(256) auf 256 Zeichen beschränkt sind. Da kannst Du ja gegebenenfalls die Zahl erhöhen.

Public Class T
'Funktion Ini Lesen
_
Public Shared Function GetPrivateProfileString(ByVal lpAppName As String, _
ByVal lpKeyName As String, _
ByVal lpDefault As String, _
ByVal lpReturnedString As System.Text.StringBuilder, _
ByVal nSize As Integer, _
ByVal lpFileName As String) As Integer
End Function

'Funktion Ini Schreiben
_
Public Shared Function WritePrivateProfileString(ByVal lpApplicationName As String, _
ByVal lpKeyName As String, _
ByVal lpString As String, _
ByVal lpFileName As String) As Boolean
End Function

_
Public Shared Function DeletePrivateProfileSection( _
ByVal Section As String, _
ByVal NoKey As Long, _
ByVal NoSetting As Long, _
ByVal FileName As String) As Long
End Function
End Class

Module modFunctionen

'Ini stückweise einlesen
Private Function GetINIString(ByVal Dateiname As String, ByVal DieSektion As String, ByVal DerEintrag As String) As String
Dim strItem As New System.Text.StringBuilder(1024) 'New System.Text.StringBuilder(256)
T.GetPrivateProfileString(DieSektion, DerEintrag, „“, strItem, strItem.Capacity, Dateiname)
Return strItem.ToString
End Function

Public Function IniSchreiben(ByVal Dateiname As String, ByVal Sektion As String, ByVal Eintrag As String, ByVal Wert As String) As Boolean 'IniDatei Schreiben
'If AccessViolationException.Equals = True Then
Dim s = T.WritePrivateProfileString(Sektion, Eintrag, Wert, Dateiname)
Return s
End Function

Public Function IniLesen(ByVal Dateiname As String, ByVal Sektion As String, ByVal Eintrag As String) 'Ini Datei Lesen
Dim s = GetINIString(Dateiname, Sektion, Eintrag)
IniLesen = s
End Function

Public Function IniEintragLöschen(ByVal Dateiname As String, ByVal Sektion As String, ByVal Eintrag As String) 'Ini Datei Eintrag löschen
Dim x = T.WritePrivateProfileString(Sektion, Eintrag, vbNullString, Dateiname)
IniEintragLöschen = x
End Function

Public Function IniSektionLöschen(ByVal Dateiname As String, ByVal Sektion As String) 'Ini Datei Sektion löschen
Dim x = T.WritePrivateProfileString(Sektion, 0, 0, Dateiname)
IniSektionLöschen = x
End Function
End Module

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]