Das Notes Forum
Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: Hedwig14 am 30.06.15 - 16:23:27
-
Hallo !
Ich importiere eine CSV Datei mit Script.
Nun benötige ich die Anzahl der Spalten.
Ich möchte das Semikolon (Trennzeichen) nun zählen und stehe gerade auf dem Schlauch. Wie kann ich in Script die Anzahl ermitteln ?
Gruss
Hedwig
-
Auf die Schnelle fällt mir da nur eine Schleife ein:
1 Mit Hilfe von InStr die Position des ersten ; ermitteln
2 -> Abbruch bei 0 als Rückgabewert (; ist somit nicht vorhanden)
3 Die ermittelte Anzahl von Zeichen vorne aus dem String löschen
4 Counter + 1
5 Prüfen ob der String danach 'leer' ist, wenn ja, -> Ende
6 Neustart bei 1
Am Ende hast du dann in deinem Counter die Anzahl der Spalten - 1, da die letzte Spalte ja nicht mehr auf ein ; endet.
Gruß Dirk
-
Einfacher: Zeile einlesen und mit Split in ein Variant packen, mit Ubound Elemente ermitteln.
-
Hallo Hedwig,
... ja, Dirk war schneller und wahrscheinlich geht das auch 1000mal chicer, aber ich würde es auch auf die Schnelle so wie Dirk lösen (so 'ne Art Übersetzung dirkisch -> Script):
'Dimensionierung der Variablen
Dim fileline As String
Dim text As String
Dim i As Integer
'... hier liest Du die Textzeile aus der csv-Datei ein = fileline
'Setzen der Startwerte
i = 0 'Zähler für Semikola
text = fileline 'bearbeitete Textzeile
Do While InStr(text, ";") > 0 'solange ein Semikolon in der bearbeiteten Textzeile enthalten ist
i = i + 1 'mitzählen
text = Right(text, Len(text) - InStr(text, ";")) 'Merken der restlichen Textzeile rechts
'vom 1. Semikolon
Loop
'jetzt sollte i die Anzahl der Semikola enthalten, ggf. musst Du dann für die Spalten noch 1
'addieren, wenn das Trennzeichen nur zwischen den Werten steht und nicht am Zeilenende,
'dann also Startwert i = 1
Viele Grüße
René
-
Ok, Bernhards Lösung ist deutlich eleganter :)
Und gut zu wissen, dass es hier im Forum einen "Dirkisch Interpreter" gibt, dann muss ich zukünftig ja gar keinen Code mehr selber schreiben 8) ;D
-
Oh, das klappt perfekt !!!!
VIELEN VIELEN DANK !!
-
Vorsicht aber, wenn in einer Spalte mal ein Wert mit Semikolon vorkommt und dann die Quelle der CSV-Datei einfach den Spaltenwert zusätzlich mit Anführungszeichen versieht !
So zum Beispiel:
Spalte1;Spalte2;"Spalte;3";Spalte4
Und nein - dass ist leider nicht nur ein theoretischer Fall.
Gruß
André
-
Ich hab da mal ein Script gefunden, das genau das Problem mit den Quotes behandelt.
http://blog.texasswede.com/import-csv-from-excel-into-notes-documents/ (http://blog.texasswede.com/import-csv-from-excel-into-notes-documents/)
Bye,
Markus