Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: Hedwig14 am 30.06.15 - 16:23:27

Titel: Anzahl der Semikolon
Beitrag 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
Titel: Re: Anzahl der Semikolon
Beitrag von: Keydins am 30.06.15 - 16:54:48
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
Titel: Re: Anzahl der Semikolon
Beitrag von: koehlerbv am 30.06.15 - 17:01:11
Einfacher: Zeile einlesen und mit Split in ein Variant packen, mit Ubound Elemente ermitteln.
Titel: Re: Anzahl der Semikolon
Beitrag von: DominoDancing am 30.06.15 - 17:04:51
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é
Titel: Re: Anzahl der Semikolon
Beitrag von: Keydins am 30.06.15 - 17:25:47
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
Titel: Re: Anzahl der Semikolon
Beitrag von: Hedwig14 am 01.07.15 - 10:52:59
Oh, das klappt perfekt !!!!
VIELEN VIELEN DANK !!
Titel: Re: Anzahl der Semikolon
Beitrag von: it898ur am 01.07.15 - 11:31:27
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é
Titel: Re: Anzahl der Semikolon
Beitrag von: rambrand am 03.07.15 - 11:38:09
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