Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Speichern und Lesen einer Text Datei

Empfohlene Antworten

Veröffentlicht

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

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.

Bei Bedarf kann ich Dir eine Funktion schicken, die Dir den Flexgridinhalt in einen String transformiert, Zeilen durch "VBCrlf" und Spalten durch "TAB" getrennt. ;)

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

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.

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

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?

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

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.