Text Speichern / Laden?

Janares

Mitglied
Hallo ich hab mal eine Frage bin Anfänger in VB und wollt mal wissen wie man Text die Man in eine Textbox schreibt speichern kann Format ist erstmal egal und diese dann anschliessend wieder laden kann.

Danke im vorraus:) :)
 
Speichern:
Code:
Open "C:\datei.txt" For Output As #1
Print #1, Text1.Text
Close #1

Einlesen:
Code:
Open "C:\datei.txt" For Input As #1
Do While Not Eof(1)
    Text1.Text = Text1.Text & vbNewLine
    Line Input #1, Text1.Text
Loop
Für die Version mit dem Einlesen musst Du die Eigenschaft "MultiLine" von der Textbox auf True setzen.
 
Nein. Ein Film (oder eine andere beliebige Mediendatei) ist binär gespeichert. Die beiden Versionen von da oben gelten nur für Textdateien zur Verarbeitung.
Wenn Du beispielsweise eine AVI-Datei abspielen willst, solltest Du Dich mal besser mit dem Mediaplayer von Microsoft beschäftigen. Der bietet eine Schnittstelle für VB an.
 
Also. Ich hab das ganze nun auch mal ausprobiert. Das Speichern ghet ja perfekt. Aber das Laden... Ich glaub ich hab da was falsch gemacht.....


Code:
Private Sub Beenden_Click()
Unload Me
End Sub

Private Sub Speichern_Click()
Open "C:\datei.txt" For Output As #1
Print #1, Text1.Text
Close #1
End Sub

Private Sub Laden_Click()
Open "C:\datei.txt" For Input As #1
Do While Not EOF(1)
    Text1.Text = Text1.Text & vbNewLine
    Line Input #1, Text1.Text
Loop
End Sub


Und dann würde ich noch gern wissen, wie man Texte ausließt. Also ich schreibe etwas in ein Textfeld und es werden in ein neues Nur bestimmte Teile kopiert.

Beispiel:

Ich spiele mit einem gelben Ball
Ich esse mit der roten Gabel

Das kommt in das 1. Textfeld. Wenn ich nun "Auslesen" klicke soll im Textfeld 2 folgendes erscheinen:

spiele gelb
esse rot


Bitte kann mir da jemand helfen



P.S. Ja die sätze sind sinnlos aber für ein Beispiel reicht es
 
Servus!

Willst du aus den Sätzen anhand von bestimmten "Wortmustern" entscheiden, ob ab dieser Stelle gelesen und in das andere Textfeld kopiert werden soll?

Also brauche um dir zu helfen Antworten auf folgende Frage:

Wie entscheidest du ab WANN die zu kopierende Zeichenkette anfängt
(bestimmte Stelle im Textfeld (z.Bsp.: Zeichen Nr. 15 ... oder bei bestimmtem Wortmuster und wo sie endet?

Gruss Tom
 
also es werden nur bestimmte wörter kopiert. Immer das gleiche.
in jeder zeile das 2. und 5. wort wobei die wörter immer eine andere länge haben. am bestenm ich poste schnell das, wofür ich es nutzen will.


03.05.2003 - 17:09:00
Eine verbündete Flotte von 384 Schiffen zieht sich zurück. Ursprung: (293:2)
03.05.2003 - 17:08:56
Die Scanner haben eine verbündete Flotte von 384 Schiffen entdeckt. Ursprung: (293:2), Reisezeit: 3
03.05.2003 - 17:08:49
Eine feindliche Flotte von 384 Schiffen zieht sich zurück. Ursprung: (293:2)
03.05.2003 - 17:08:46
Die Scanner haben eine feindliche Flotte von 384 Schiffen entdeckt. Ursprung: (293:2), Reisezeit: 4

das ist von einem Browsergame ein ausschnitt. nun soll mein programm die angreifenden und verteidigenden flotten auslesen und zusammenrechnen.
 
Achso das Problem mit dem speichern und laden hab ich behoben

Code:
Dim text As String

Private Sub laden_Click()
Open "C:\datei.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, text
Text1.text = Text1.text & vbNewLine & text
Loop
End Sub

Private Sub speichern_Click()
Open "C:\datei.txt" For Output As #1
Print #1, Text1.text
Close #1
End Sub
 
Servus!

In deinen geposteten Textausschnitten sehe ich aber leider keine genauen Muster, die ein "angreifendes" bzw. ein "verteidigendes" Schiff definieren ...

Aber ein Wort an einer bestimmten Stelle könntest du erfassen, indem du erstmal annimmst, dass alle Wörter durch Leerzeichen voneinander getrennt sind. Zähle nun die Leerzeichen vom Start ab bis zu dem Wort, dass du haben willst. Nun kannst du immer im String nach dem X-ten Leerzeichen suchen und ab dann eine Zeichenkette von einer bestimmten länge extrahieren.

Oder aber du Splitest den kompletten String mit split(Str as String, " ") in ein Stringarray auf, wobei das Leerzeichen als Trennzeichen betrachtet wird. Nun durchläufst du das Stringarray und suchst nach dem Element, das mit einer bestimmten Zeichenfolge übereinstimmt:
Bsp.:

Dim str = "Das angreiffende Schiff heist Excelsior"
Dim strArray() as String
strArray = split(str," ")

StrArray(0) = "Das"
StrArray(1) = "angreiffende"
StrArray(2) = "Schiff"
StrArray(3) = "heist"
StrArray(4) = "Excelsior"

nun suchst Du z.Bsp. das Element, das mit "angreiffende" übereinstimmt. Hast du es gefunden nimmst du die nächsten y ArrayFelder alle mit in einen Antwortstring und ... fertig.

Gruss Tom
 
Zuletzt bearbeitet:
Moin

ohje... ich als noob check das gar net. ich mal so viel begriffen, dass strArray = Split(Str, " ") den ganzen text teilt. Aber könntest du mir bitte bitte das ganze so schicken, dass er immer das 2. wort aus Textfeld1 ausliest (aus jeder zeile) und in Textfeld2 schreibt wenn ich auf den button Command1 klicke.

In code bitte bitte
 

Neue Beiträge

Zurück