Zum Inhalt springen

Speichern und Lesen einer Text Datei


Empfohlene Beiträge

Geschrieben

Hi Leute,

brauch dringend Hilfe!!!

Habe angefangen mit Visual Basic 6 zu Programmieren und nun habe ich die Aufgabe bekommen das was in dem FlexGrid steht zu speichern und es dann Automatisch wieder anzeigen zu lassen wenn das Programm neu gestartet wurde....???

Habe es schon geschaft das es in eine TextDatei speichert wurde aber nur eine Zeile und die anderen speichert er garnicht...

Private Sub Comsave_Click()

Dim Dateiname As String, DateiNr As Integer

Dim Temp As String

Dateiname = "Liesmich.txt"

DateiNr = FreeFile

Open Dateiname For Output As DateiNr

Print #DateiNr, VSFlexGrid1.Cell(flexcpText, 1, 0)

Print #DateiNr, VSFlexGrid1.Cell(flexcpText, 1, 1)

Print #DateiNr, VSFlexGrid1.Cell(flexcpText, 1, 2)

Close DateiNr

End Sub

Und das automatische Speichern wenn er das Programm wieder neu öffnet funktioniert auch nicht...???

Würde mich freuen über Beispiele oder über Lösungsmöglichkeiten.

Ich bedanke mich hiermit schon im Vorraus

Mfg Andy

Geschrieben

Nabend,


Private Sub Comsave_Click()

' sowas macht man am Besten mit gleichen Datentypen!

' Dim Dateiname As String, DateiNr As Integer

' Dim Temp As String


Dim sDateiName As String, sTemp As String

Dim nDateiNr As Integer


sDateiname = "C:\Liesmich.txt"


DateiNr = FreeFile


' # fehlt

Open sDateiname For Output As #nDateiNr


' das Semikolon am Ende bewirkt, dass ein Zeilenumbruch (z.B. VbCrLf) ans Ende der Zeile geschrieben wird

' alternativ: .... , VSFlexGrid1.Cell(...) & VbCrLf

Print #nDateiNr, VSFlexGrid1.Cell(flexcpText, 1, 0);

Print #nDateiNr, VSFlexGrid1.Cell(flexcpText, 1, 1);

Print #nDateiNr, VSFlexGrid1.Cell(flexcpText, 1, 2);


Close #nDateiNr


End Sub

Code ist ungetestet, ich würde den Inhalt des Grid auch vorher in eine String Variable schmeißen, besser für eventuelle spätere Verarbeitung.

Ansonsten schau mal hier, dort ist das Dateihandling mit VB 6 gut beschrieben:

http://www.activevb.de/tutorials/tut_speichern/speichern.html

Schönen Abend.

Geschrieben

Hi,

vielen dank für deine Nachricht hast mir echt weiter geholfen.

Habe es geschaft :) es zu speichern( Jede Zeile).

Hier mein Code:

Private Sub Comsave_Click()

Dim DateiName As String, Temp As String

Dim DateiNr As Integer

DateiName = "C:Liesmich.txt"

DateiNr = FreeFile

Open DateiName For Output As #DateiNr

With Me.VSFlexGrid1

For i = 1 To .Rows - 1

Print #DateiNr, VSFlexGrid1.Cell(flexcpText, i, 0)

Print #DateiNr, VSFlexGrid1.Cell(flexcpText, i, 1)

Print #DateiNr, VSFlexGrid1.Cell(flexcpText, i, 2)

Next

End With

Close #DateiNr

End Sub

Aber das Einlesen klappt nicht könntest du mir wieder ein Paar Anregungen geben...????

Wär echt super....vielen dank schon mal

Habe es so probiert aber klapt leider nicht....

Hier mein Code:

Private Sub Command1_Click()

Dim DateiName As String, DateiNr As Integer

Dim Temp As String

DateiName = "C:Liesmich.txt"

DateiNr = FreeFile

Open DateiName For Input As #DateiNr

Do While Not EOF(DateiNr)

Line Input #DateiNr, Temp

With Me.VSFlexGrid1

For i = 1 To .Rows - 1

Me.VSFlexGrid1.Cell(flexcpText, i, 0) = Temp

Me.VSFlexGrid1.Cell(flexcpText, i, 1) = Temp

Me.VSFlexGrid1.Cell(flexcpText, i, 2) = Temp

Next

End With

Loop

Close DateiNr

End Sub

Geschrieben

hi,

das einlesen klappte bei mir, wenn ich den Backslash bei "C:Liesmich" einfüge.

Wenn Du einfach mal


    Open DateiName For Input As #DateiNr

        '

        Do While Not EOF(DateiNr)


            Line Input #DateiNr, temp

            ' ausgabe im direktfenster

            Debug.Print temp

        Loop


    Close DateiNr

machst, wirst Du sehen das er schon einließt. Erkläre am besten mal genau, was Du in dem FlexGrid wo darstellen willst.

Ich denke, Du wirst am besten fahren, wenn Du den Dateiinhalt zeilenweise in ein Array packst und mit diesen das Flexgrid füllst.

Geschrieben

Hi,

Danke für die Vorlage aber habe mein Problemm Schon gelöst...

Er liest jetzt jede Zeile einzelnt ein.

Hier mein Codde:

Private Sub Form_Load()

Dim DateiName As String, DateiNr As Integer

Dim Temp As String

DateiName = "C:Liesmich.txt"

DateiNr = FreeFile

Open DateiName For Input As #DateiNr

Dim col As Long

col = -1

Do While Not EOF(DateiNr)

Line Input #DateiNr, Temp

If col = 2 Then col = -1

col = col + 1

With Me.VSFlexGrid1

.Cell(flexcpAlignment, .Rows - 1, 0) = flexAlignCenterCenter

.Cell(flexcpAlignment, .Rows - 1, 1) = flexAlignCenterCenter

.Cell(flexcpAlignment, .Rows - 1, 2) = flexAlignCenterCenter

If col = 0 Then .AddItem ""

Me.VSFlexGrid1.Cell(flexcpText, .Rows - 1, col) = Temp

End With

Loop

Close DateiNr

End Sub

Hoffe du kannst auch was damit anfangen...???

Habe aber schon wieder ein neues Problemm und zwar soll ich in einem VSFlesGrid eine Tabelle erstellen wo viele Zahlen drin stehen und da soll die Gröste Zahl am Anfang des VSFlexGrid stehen.

Und fast das gleich soll bei meiner Zweiten aufgabe sein..

Er soll sich die Kleinste Zahl sich im VSFleGrid nemmen und dann einfach weiter Zählen. Zum Beispiel du hast die Zahlen 10 30 55 und die 23 dann müsste es so aussehen: 10 dann ist die nächst nähere Zahl die 30, 23 und die 55.

So sollte es dann am schluss aussehen hoffe du kannst mir weiter helfen...???

MfG

Andy

Geschrieben

Moin,

nein, ich verstehe den Sinn hinter der 2. Aufgabe nicht.

Wieso ist die nächst nährere Zahl von 10 30 und nicht 23?

Soll das eine Sortierung des Flexgrids werden?

Geschrieben

Hi,

upps hast recht hab mich vertan ja es soll eine Sortierung des FlexGrids werden..

Ich denke ich habe es fast gelöst nur leider kann ich mit dem Code nur Alphabetisch sortieren …..

Me.VSFlexGrid1.Select 1, 0

Me.VSFlexGrid1.Sort = flexSortGenericAscending

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...