# Mehrzeilig Speichern und Laden



## Mister master (28. Mai 2007)

Ich habe jetzt alle 491 Themen zu dem Theme Speichern durchgearbeitet, und trotzdem nichts gefunden, dass mir bei meinem eigentlich ganz einfachen Problem helfen könnte! 

Ich habe: eine Textdatei C:\test.txt, 3 variablen, nennen wir sie A, B und C und 2 Buttons, save/load. 

Ich will in test.txt mein Drei Variablen nach einem Schema speichern, nämlich: 

A = 1. Zeile
B = 2. Zeile
C = 3. Zeile

NICHT ANDERS! 

und beim Auslesen will ich auch, dass 

A den Wert der 1. Zeile hat
B den Wert der 2. Zeile und
C den Wert der 3. Zeile!

Nicht mehr, aber SuFU ergibt nichts zu dem Thema. 

MfG,
M&M


----------



## wincnc (28. Mai 2007)

Hallo, schau mal hier nach:
INI-Dateien bearbeiten und verwalten


----------



## Mister master (28. Mai 2007)

Aber wie erstelle ich eine .ini Datei? Eine .txt Datei ist mir auch viel lieber...


----------



## wincnc (28. Mai 2007)

Eine INI Datei ist nichts anderes als ein Text Datei.
Das musst du dir schon durchlesen und durcharbeiten, dann weißt du auch wie man eine INI Datei erstellt.


----------



## Mister master (28. Mai 2007)

Für mich als Newbie sieht das aber ziemlich kompliziert aus und ich blicke jetzt schon nach der 2. Seite nicht mehr durch. Hat nicht irgentwer einen Lösungsvorschlag mit .txt?


----------



## wincnc (28. Mai 2007)

Hier hab noch was für Text Dateien.
Textdateien komfortabel einlesen und schreiben

*// EDIT*

Hier mal ein kleines Beispiel für das Lesen und - Schreiben einer INI Datei.

Starte und schließe die Anwendung 2 mal.

Beim 1. Start bekommst 3 MsgBoxen mit dem Text nix.
Beim 2. Start bekommst 3 MsgBoxen mit dem Text Hallo - wie - gehts.

Die Datei Test.ini sieht dann so aus:
[Start]
A=Hallo
B=wie
C=gehts


```
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 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 DeineErsteVariable As String
Private DeineZweiteVariable As String
Private DeineDritteVariable As String

Private Sub Form_Load()
'INI Datei beim Starten der Anwendung lesen.

Dim sValue As String * 255
Dim lResult As Long

' nix ist der Defaultwert, wenn nichts in der INI steht
lResult = GetPrivateProfileString("Start", "A", "nix", sValue, Len(sValue), App.Path & "\Test.ini")
DeineErsteVariable = Left$(sValue, lResult)

lResult = GetPrivateProfileString("Start", "B", "nix", sValue, Len(sValue), App.Path & "\Test.ini")
DeineZweiteVariable = Left$(sValue, lResult)

lResult = GetPrivateProfileString("Start", "C", "nix", sValue, Len(sValue), App.Path & "\Test.ini")
DeineDritteVariable = Left$(sValue, lResult)

MsgBox DeineErsteVariable
MsgBox DeineZweiteVariable
MsgBox DeineDritteVariable

End Sub

Private Sub Form_Unload(Cancel As Integer)
'INI Datei beim Beenden der Anwendung schreiben.

DeineErsteVariable = "Hallo"
DeineZweiteVariable = "wie"
DeineDritteVariable = "gehts"

WritePrivateProfileString "Start", "A", DeineErsteVariable, App.Path & "\Test.ini"
WritePrivateProfileString "Start", "B", DeineZweiteVariable, App.Path & "\Test.ini"
WritePrivateProfileString "Start", "C", DeineDritteVariable, App.Path & "\Test.ini"

End Sub
```
So schwer ist das doch nicht.


----------



## tg6300 (14. März 2008)

Hallo,

bin in diesem Thema auch als Anfänger unterwegs und hab schon viel recherchiert,
als ich auf den Code des vorherigen Beitrages stieß.

Ich habe versucht, ihn unter VB2005 zum Laufen zu bringen, aber es funktioniert einfach nicht. Bekomme immer solche Fehler wie"end of" -Anweisung wird erwartet.

Habt ihr da noch einen Tipp für mich?

Danke & Gruß

Thomas


----------



## Alex F. (14. März 2008)

tg6300 hat gesagt.:


> Hallo,
> 
> bin in diesem Thema auch als Anfänger unterwegs und hab schon viel recherchiert,
> als ich auf den Code des vorherigen Beitrages stieß.
> ...



Hallo Thomas ,

du bist hier auch falsch denn vb2005 ist dot net und das ist ein anderes Forum 
Grüsse bb


----------



## Dario Linsky (14. März 2008)

Hallo,



> Ich habe versucht, ihn unter VB2005 zum Laufen zu bringen, aber es funktioniert einfach nicht. Bekomme immer solche Fehler wie"end of" -Anweisung wird erwartet.


logisch, der gepostete Code sieht ja auch eher nach VB6 aus und nicht nach VB .net (2005). Da stecken völlig unterschiedliche Technologien dahinter.

Wenn du mit VB 2005 eine Datei öffnen willst, würde ich dir raten, einen FileStream zu benutzen.

http://www.google.de/search?hl=de&q=.net+filestream&btnG=Suche&meta=
http://www.google.de/search?hl=de&q=vb+.net+filestream&btnG=Suche&meta=
http://www.google.de/search?hl=de&q=vb+.net+open+file&btnG=Suche&meta=

Vielleicht ist da ja was brauchbares für dich dabei?

Grüße, D.


----------



## tg6300 (14. März 2008)

Ok, danke für die Tipps. Werd' mir die Links gleich mal anschauen.

Gruß,
Thomas


----------



## mafioso (14. März 2008)

klein und simpel.


```
Function speichern() 'speichert die variablen in einer textdatei
    Open  "C:\Datei.txt" For Output As #1
        Print #1, a 'erste zeile der .txt datei 
        Print #1, b 'zweite zeile der .txt datei
        Print #1, c 
    Close #1    
End Function

Function auslesen() 'liest die daten aus .txt. datei aus

Dim variable_a As String
dim variable_b as string
    Open "C:\Datei.txt" For Input As #1
        Input #1, variable_a 'daten in der ersten zeile werden dieser variable übergeben
        Input #1, variable_b 'daten in der zweiten zeile -||-
        .
        .
        .
    Close #1
```


----------



## tg6300 (14. März 2008)

Wollte es testen, aber es gibt einige Fehler:

"Open" ist nicht deklariert. Dateieingaben und -ausgaben sind im Microsoft.VisualBasic-Namespace verfügbar.	

For Input As #1	"end of"-Anweisung erwartet.	

# Fehler		Ausdruck erwartet.	

Bist Du sicher das Dein Code für VB2005 gedacht ist?

Gruß,
Thomas


----------



## Dario Linsky (14. März 2008)

Hi,

nein, der Code ist auch wieder nur mit VB 6 kompatibel.

Um weitere Missverständnisse zu vermeiden wäre es vielleicht das beste, du startest mal einen eigenen Thread im .net-Forum. 

Grüße, D.


----------



## deepthroat (14. März 2008)

tg6300 hat gesagt.:


> Bist Du sicher das Dein Code für VB2005 gedacht ist?


Nein, ist er ganz sicher nicht. Du bist im falschen Forum. Siehe http://www.tutorials.de/forum/visual-basic/253268-themen-zu-vb-net-2003-2005-a.html

Gruß

Ups: Zehntelsekunden zu spät....


----------



## tg6300 (14. März 2008)

Ok, das werde ich tun. Danke für die Hilfe.

Thomas


----------

