Hallo,
Ich habe ein FlexGrid welches immer die gleiche anzahl mit Zeilen aber eine Variable anzahl von Spalten hat. Nun würde ich diesen Inhalt gern in ein Textfile speichern. gibt es da einen Befehl wie Flexgrid.save oder muss ich das ganze zeilenweise in eine txt schreiben ?
Ich habe ein FlexGrid welches immer die gleiche anzahl mit
Zeilen aber eine Variable anzahl von Spalten hat. Nun würde
ich diesen Inhalt gern in ein Textfile speichern. gibt es da
einen Befehl wie Flexgrid.save
nein.
oder muss ich das ganze zeilenweise in eine txt schreiben ?
Kann ich ein FlexGrid direkt zeilenweise auslesen ?
if not EOF +1?
nein, das Flexgrid ist doch kein File.
Das könnte etwa so aussehen:
Private Sub Command1\_Click()
Dim Datei As String, ff As Integer
Dim r As Long, c As Long, Zl As String
ff = FreeFile
CommonDialog1.ShowSave
Open CommonDialog1.FileName For Output As #ff
Print #ff, MSFlexGrid1.Rows
Print #ff, MSFlexGrid1.Cols
For r = 1 To MSFlexGrid1.Rows - 1
Zl = ""
For c = 0 To MSFlexGrid1.Cols - 1
Zl = Zl + MSFlexGrid1.TextMatrix(r, c) + "|"
Next
Print #ff, Zl
Next
Close #ff
End Sub
Private Sub Command2\_Click()
Dim Datei As String, ff As Integer
Dim r As Long, c As Long, Zl As String, Feld() As String
ff = FreeFile
CommonDialog1.ShowOpen
Open CommonDialog1.FileName For Input As #ff
Input #ff, r
Input #ff, c
MSFlexGrid1.Rows = r
MSFlexGrid1.Cols = c
For r = 1 To MSFlexGrid1.Rows - 1
Input #ff, Zl
Feld = Split(Zl, "|")
For c = 0 To MSFlexGrid1.Cols - 1
MSFlexGrid1.TextMatrix(r, c) = Feld(c)
Next
Next
Close #ff
End Sub
Um eine Schleife zu sparen, kannst Du den Inhalt des Flexgrids auch mit dessen Clip-Eigenschaft auslesen. Diese Eigenschaft enthält immer den Inhalt des momentan markierten Bereichs und ist vom Datentyp String.
Ein kleiner (unvollständiger) Beispielcode:
Dim Inhalt as String
With MSFlexGrid1
.Redraw = False
.Row = .FixedRows
.Col = .FixedCols
.RowSel = .Rows - 1
.ColSel = .Cols - 1
Inhalt = .Clip
.Redraw = True
End With
Dann, wie bei Rainers Beispiel, die Anzahl der Spalten, die Anzahl der Zeilen und den Inhalt von „Inhalt“ in die Datei schreiben.