Autor Thema: Anzahl der Semikolon  (Gelesen 3470 mal)

Offline Hedwig14

  • Aktives Mitglied
  • ***
  • Beiträge: 221
Anzahl der Semikolon
« 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

Offline Keydins

  • Aktives Mitglied
  • ***
  • Beiträge: 163
  • Geschlecht: Männlich
Re: Anzahl der Semikolon
« Antwort #1 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
Gruß Dirk

Aktuelle Notesumgebung
~800 BasicClients 9.0.1 FP9 SHF55
  10 FullClients 9.0.1 FP7 SHF143
    7 DominoServer 9.0.1 FP9 HF 139 / 64 Bit

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Anzahl der Semikolon
« Antwort #2 am: 30.06.15 - 17:01:11 »
Einfacher: Zeile einlesen und mit Split in ein Variant packen, mit Ubound Elemente ermitteln.

Offline DominoDancing

  • Aktives Mitglied
  • ***
  • Beiträge: 141
  • Geschlecht: Männlich
  • Kugel im Käfig, lsmf, hurz ...
Re: Anzahl der Semikolon
« Antwort #3 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é
... ich fühl' mich so ... Regenbogen ... ;D
... man muss die Ursache des Problems finden ... oder eine Tüte Glitzerfeenstaub ...
... Ich bin rhythm, I'm a dancer und I don't like Influenzer ...

Offline Keydins

  • Aktives Mitglied
  • ***
  • Beiträge: 163
  • Geschlecht: Männlich
Re: Anzahl der Semikolon
« Antwort #4 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
« Letzte Änderung: 30.06.15 - 17:28:19 von Keydins »
Gruß Dirk

Aktuelle Notesumgebung
~800 BasicClients 9.0.1 FP9 SHF55
  10 FullClients 9.0.1 FP7 SHF143
    7 DominoServer 9.0.1 FP9 HF 139 / 64 Bit

Offline Hedwig14

  • Aktives Mitglied
  • ***
  • Beiträge: 221
Re: Anzahl der Semikolon
« Antwort #5 am: 01.07.15 - 10:52:59 »
Oh, das klappt perfekt !!!!
VIELEN VIELEN DANK !!

Offline it898ur

  • Senior Mitglied
  • ****
  • Beiträge: 478
Re: Anzahl der Semikolon
« Antwort #6 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é

Offline rambrand

  • Senior Mitglied
  • ****
  • Beiträge: 469
  • Geschlecht: Männlich
Re: Anzahl der Semikolon
« Antwort #7 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/

Bye,
Markus
Domino/Notes ab 4.6 aktuell 10.1FP3
Traveler 10.0.1FP1
PHP-Entwickler
Domino/Notes-Entwickler (Hobby)
Consultant (Informationssicherheit & Datenschutz)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz