Seite 1 von 2
CSV Anzahl der Zeilen
Verfasst: 24.11.2013 11:38
von Pure_Beginner
Hallo zusammen,
bin auf der Suche die Anzahl der enthaltenen Zeilen in einer .csv Datei zu ermitteln.
Habe leider bei den Boardmitteln nichts gefunden.
für Eure Hilfe wäre ich Dankbar.
Grüße
Christian
Re: CSV Anzahl der Zeilen
Verfasst: 24.11.2013 11:47
von ts-soft
Zeilen einlesen und dabei Zählen!
oder was hast Du erwartet?
Re: CSV Anzahl der Zeilen
Verfasst: 24.11.2013 11:50
von Pure_Beginner
@ts-soft
ja das geht
aber ich möchte die letzte Zeilen (immer 14) nicht einlesen.
Grüße
Christian
Re: CSV Anzahl der Zeilen
Verfasst: 24.11.2013 11:55
von Pure_Beginner
also was ich meine ist, kann ich die Zeilen vorher counten ohne alles einzulesen ?
Re: CSV Anzahl der Zeilen
Verfasst: 24.11.2013 12:11
von ts-soft
Pure_Beginner hat geschrieben:also was ich meine ist, kann ich die Zeilen vorher counten ohne alles einzulesen ?
Nein, wie sollte das gehen? Wenn, was unwahrscheinlich ist, jede Zeile dieselbe Anzahl an Zeichen
hätte, könnte man es anhand der Dateigrösse ausmachen. Das ist aber bei CSV-Dateien eher nicht der Fall.
Re: CSV Anzahl der Zeilen
Verfasst: 24.11.2013 12:16
von Pure_Beginner
@ts-soft,
danke für die rasche Antwort.
also erst durchzählen dann importieren.
Schönen Sonntag
Christian
Re: CSV Anzahl der Zeilen
Verfasst: 24.11.2013 12:22
von ts-soft
Ich würde die CSV-Datei (ist ja nur eine stinknormale Textdatei) als ganzes in den Speicher lesen und
dann anhand der definierten Trennzeichen, die Anzahl Zeilen und Spalten ermitteln.
Deine Aussage hört sich an, als wenn Du es 2x lesen möchtest?
Schönen Sonntag,
Thomas
Re: CSV Anzahl der Zeilen
Verfasst: 24.11.2013 13:04
von Pure_Beginner
@ts-soft,
ja werd sie zweimal durchlaufen is kein großes Ding.
Re: CSV Anzahl der Zeilen
Verfasst: 24.11.2013 13:08
von Bisonte
Ist gar nicht notwendig, zweimal durchzurauschen.
Ich schätze, du möchtest deine Textzeilen in einem Array speichern und benötigst daher die Anzahl vor dem einlesen.
Geht auch ein wenig anders... mit Linklists
Beispiel:
Code: Alles auswählen
EnableExplicit
Define NewList CSV.s()
Procedure ReadCSV(FileName.s, List Zeile.s())
Protected hFile
ClearList(Zeile())
hFile = ReadFile(#PB_Any, FileName)
If hFile
While Not Eof(hFile)
AddElement(Zeile())
Zeile() = ReadString(hFile)
Wend
CloseFile(hFile)
EndIf
ProcedureReturn ListSize(Zeile()) ; Wenn alles geklappt hat ist hier die Anzahl der Zeilen drin
EndProcedure
Procedure.s GetCSV_Zeile(ZeilenIndex, List Zeile.s())
Protected Ausgabe.s = ""
; Teste auf ZeilenAnzahl -1, weil ein ListenIndex mit 0 beginnt, ListSize() aber "richtig" zählt
If ZeilenIndex => 0 And ZeilenIndex <= (ListSize(Zeile()) - 1)
SelectElement(Zeile(), ZeilenIndex)
Ausgabe = Zeile()
EndIf
ProcedureReturn Ausgabe
EndProcedure
;:- Nun kann man auf die Linklist wie auf ein Array zugreifen ( Beinahe ;) )
If ReadCSV("meine.csv", CSV()) ; << Einlesen
Debug GetCSV_Zeile(10, CSV()) ; << Zeile 10 ausgeben
EndIf
Dabei muss man natürlich beachten, dass die Zeilennummerierung mit 0 beginnt und nicht mit 1
Re: CSV Anzahl der Zeilen
Verfasst: 24.11.2013 13:20
von Pure_Beginner
@Bisonte,
funktioniert, habs gleich ausprobiert.
Besten Bank für die Tipps.
Schönen Sonntag
Christian