|  |  | 
|  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | 
|  |  | 
|  | Exklusives EDU-Programm für RTX PRO Blackwell, eine Pressemitteilung 
 | 
| Autor | Thema:  Hilfe bei CSV-Import (1358 mal gelesen) | 
 | rkauskh Moderator
 Dipl.-Ing. (FH) Versorgungstechnik, Master Eng. IT-Security & Forensic
 
        
 
  
 
      Beiträge: 2933Registriert: 15.11.2006
 Windows 10 x64, AIP 2020-2025 |    erstellt am: 23. Nov. 2010 10:46  <-- editieren / zitieren -->    Unities abgeben:            
  Hallo Ich knobel schon seit geraumer Zeit, da ich eine CSV-Datei einlesen muß. Die Datei stammt aus einer Datenbank auf deren Exportoptionen ich keinen Einfluß habe. Ich muß es nehmen wie's kommt. Die Schwierigkeiten habe ich mit den Feldtrennern. "12345";"001";ja;"Text; Text";"Text";;;"";"0001";nein;;0;ja Wie man sieht, ist im vierten Feld ein Semikolon mitten im Text. Hat jemand einen Tip wie ich Split beibringe dieses Semikolon nicht als Feldtrenner zu interpretieren? ------------------MfG
 RK
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | mssoftware Mitglied
 alles mögliche
 
  
 
      Beiträge: 76Registriert: 15.06.2005
 Design Suite 2011-2016 UltimateMicrosoft Visual Studio Professional 2010<P>i7 2600K @3,4Ghz
 Windows 7 64bit
 nvidia GTX 760
 16GB RAM
 2x SSD256GB
 NAS 1TB (gespiegelt)
 |    erstellt am: 23. Nov. 2010 14:56  <-- editieren / zitieren -->    Unities abgeben:           Nur für rkauskh   
  Hallo rkauskh, wie man die Splitfunktion dahingehend beeinflussen kann, weiß ich nicht. Ich würde es so programmieren: Code:Dim temp As String = """12345""" & ";" & """001""" & """;ja;""" & """Text; Text""" & ";" & """Text""" & ";;;" & """""" & ";" & """0001""" & """;nein;;0;ja"""
 Dim innerhalb_string As Boolean = False
 Dim ergebniss(1) As String
 Dim array_i As Integer = 1
         For i As Integer = 0 To temp.Length - 1If temp(i) = Chr(34) Then
 If innerhalb_string Then
 innerhalb_string = False
 'Arrayindex um 1 erhöhen
 array_i += 1
 ReDim Preserve ergebniss(array_i + 1)
 Else
 innerhalb_string = True
 End If
             ElseIf innerhalb_string Then
 ergebniss(array_i) = ergebniss(array_i) + temp(i)
 End If
 End If
 Next
         'Array durchlaufen und Text im Debugfenster ausgebenFor i2 As Integer = 1 To UBound(ergebniss) - 1
 Debug.WriteLine(" - " & ergebniss(i2))
 Next
 
 Geht mit Sicherheit noch kürzer und einfacher. Viele Grüße Maik Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | rkauskh Moderator
 Dipl.-Ing. (FH) Versorgungstechnik, Master Eng. IT-Security & Forensic
 
        
 
  
 
      Beiträge: 2933Registriert: 15.11.2006
 Windows 10 x64, AIP 2020-2025 |    erstellt am: 23. Nov. 2010 20:33  <-- editieren / zitieren -->    Unities abgeben:            | 
                       
 | rkauskh Moderator
 Dipl.-Ing. (FH) Versorgungstechnik, Master Eng. IT-Security & Forensic
 
        
 
  
 
      Beiträge: 2933Registriert: 15.11.2006
 Windows 10 x64, AIP 2020-2025 |    erstellt am: 24. Nov. 2010 20:50  <-- editieren / zitieren -->    Unities abgeben:            
  Hallo Mit dem entfernten Semikolon trat im nächsten Datensatz ein neuer Fehler auf. Dort war ein einzelnes Anführungszeichen im Text.    Das hatte so keinen Wert und ganz nebenbei wurde erwähnt, daß der Export auch als XML möglich wäre.
   
 ------------------MfG
 RK
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |