Autor Thema: CSV einlesen, Trennzeichen wird ignoriert  (Gelesen 1046 mal)

Offline jknoblich

  • Junior Mitglied
  • **
  • Beiträge: 78
  • Geschlecht: Männlich
CSV einlesen, Trennzeichen wird ignoriert
« am: 14.09.04 - 09:17:00 »
Nach langer Zeit muß ich mir mal wieder ein Script basteln, um umfangreiche Aufgaben in einem Rutsch erledigen zu können.

Da ich ja schon mal etwas ähnliches machen musste, hab ich mir schnell die passenden Stücke in mein neues Script reinkopiert.
Aber es funktioniert nicht.

Open fileName$ For Input As fileNum%
   z=0
   Do While Not Eof(fileNum%)
      Line Input #(fileNum) ,text$
      z=z+1
   Loop
   Close fileNum%
   Open fileName$ For Input As fileNum%
   For i% = 1 To z
      Input #fileNum%, txtname, txtvname, txtuserid
      Username=txtname & " " & txtvname
      Set doc = view.GetDocumentByKey( Username )
      Msgbox username

usw.
In der CSV-Datei sind die Felder mit Semikolon getrennt. Und die werden völlig ignoriert. Also txtname, txtvname und txtuserid werden als ein String ausgelesen.

Das ging doch früher. (war aber noch R4)
Was läuft da falsch?

Offline Don Pasquale

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.390
  • Geschlecht: Männlich
  • Don Pasquale
    • Auf Verlorenem Posten
Re:CSV einlesen, Trennzeichen wird ignoriert
« Antwort #1 am: 14.09.04 - 12:43:04 »
OK, da sich niemand dazu meldet könnte ich Dir alternativ
empfehlen, zuerst die gesamte Zeile einzulesen
und erst im zweiten Schritt die Zeile in die einzelnen Teile
zu teilen. Es gibt eine Visual Basic Routine, die das
sehr gut macht: in deinem Fall also
ersterTeilstring$ = sWord( text$, ";", 1)

Hier ist der Code zur dieser Routine:
Private Function sWord(sourceString As String, separator As String, number As Integer) As String

Dim Searchstring As String
Dim SubString As String
Dim pos As Integer

    Searchstring$ = sourceString & separator
    For i% = 1 To number
        pos% = InStr(Searchstring$, separator)
        If pos% = 0 Then Exit For
        SubString$ = Left(Searchstring$, pos% - 1)
        Searchstring$ = Mid(Searchstring$, pos% + 1)
    Next
    If pos% > 0 Then
        sWord = SubString$
    Else
        sWord = ""
    End If
End Function


Sorry, da ich R4 nicht kenne, kann ich Dir nicht sagen, warum es nicht mehr funzt.
Ciao
Don Pasquale
« Letzte Änderung: 14.09.04 - 12:44:27 von Don Pasquale »

Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Re:CSV einlesen, Trennzeichen wird ignoriert
« Antwort #2 am: 16.09.04 - 14:04:01 »
aus der Hilfe zu Input #

variableList
A list of variables, separated by commas. The data read from the file is assigned to these variables. File data and its data types must match these variables and their data types.
variableList cannot include arrays, lists, variables of a user-defined data type, or object reference variables. It can include individual array elements, list elements, and members of a user-defined data type or user-defined class.

Es sollte eigentlich mit Kommata funktionieren und nicht mit Semikolons...
Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz