CSV dateien lesen und schreiben
Betrifft: CSV dateien lesen und schreiben
von: Tobias
Geschrieben am: 17.08.2004 08:30:52
Summa sind es 3 frage:
1. Wie kann ich CSV Dateien lesen?
2. schreiben?
3. wie bekommen ich eine Position aus dem zahlen und ";" Haufen?
Eigentlich würde sich das problem recht schnell lösen, makroaufzeichner an und los gehts. Aber ich habe festgestellt das das tool dann nicht auf allen versionen läuft und wollte deswegen nur mit dem VBA und einer oder mehrerer Textdateien arbeiten ohne das Excel??
Die meisten Forumseinträge die CSV angehen (die ich gefunden habe) beschränken sich auf CSV, VBA und Excel aber nicht nur VBA und CSV.
Weiß einer Rat?
mfg
Tobias
Betrifft: AW: CSV dateien lesen und schreiben
von: ChrisL
Geschrieben am: 17.08.2004 15:30:41
Hi Tobias
CSV Dateien sind ganz gewöhnliche Text-Dateien. Wie man eine solche liest bzw. schreibt gibt es viele Beispiele in der Recherche.
Nachstehende Funktion funktioniert halbwegs d.h. scheitert bei der letzten Spalte, könnte man aber auch noch korrigieren (muss jetzt leider weg, also melden, sofern Bedarf)...
Function CSVSpezial(Datei As String, Zeile As Long, Spalte As Integer) As Variant
Dim iZeile As Long, iSpalte As Integer
Dim Text As String
Application.Volatile
iZeile = 0
Close #1
Open Datei For Input As #1
Do While Not EOF(1)
iZeile = iZeile + 1
Line Input #1, Text
If iZeile = Zeile Then
If Spalte <> 1 Then
iSpalte = 1
Do Until Spalte = iSpalte
iSpalte = iSpalte + 1
If InStr(Text, ";") = 0 Then Exit Do
Text = Right(Text, Len(Text) - InStr(Text, ";"))
Loop
End If
Text = Left(Text, InStr(Text, ";") - 1)
CSVSpezial = Text
Close #1
Exit Function
End If
Loop
Close #1
End Function
In eine Zelle gibts du ein
=CSVSpezial(Datei;Zeilennummer,Spaltennummer)
also z.B.
=csvspezial("C:\Test\test.csv";1;1)
Gruss
Chris
Betrifft: AW: CSV dateien lesen und schreiben
von: Tobias
Geschrieben am: 17.08.2004 15:47:32
Danke chriss,
werd diesen Ansatz mal versuchen zu implementieren.
gruß
Tobias
Betrifft: AW: CSV dateien lesen und schreiben
von: ChrisL
Geschrieben am: 17.08.2004 19:35:45
Hi Tobias
Hab schon bald an mir selber gezweifelt, aber so müsste es gehen...
Function CSVSpezial(Datei As String, Zeile As Long, Spalte As Integer) As Variant
Dim iZeile As Long, iSpalte As Integer, AnzahlSpalten As Integer
Dim Text As String
Application.Volatile
Close #1
Open Datei For Input As #1
Do While Not EOF(1)
iZeile = iZeile + 1
Line Input #1, Text
If iZeile = Zeile Then
AnzahlSpalten = Len(Text) - Len(WorksheetFunction.Substitute(Text, ";", "")) + 1
If AnzahlSpalten < Spalte Then
CSVSpezial = "Spalte nicht vorhanden"
Close #1
Exit Function
End If
If Spalte <> 1 Then
For iSpalte = 2 To Spalte
Text = Right(Text, Len(Text) - InStr(Text, ";"))
Next iSpalte
End If
If InStr(Text, ";") <> 0 Then Text = Left(Text, InStr(Text, ";") - 1)
CSVSpezial = Text
Close #1
Exit Function
End If
Loop
CSVSpezial = "Zeile nicht vorhanden"
Close #1
End Function
Gruss
Chris
Beiträge aus den Excel-Beispielen zum Thema "CSV dateien lesen und schreiben"