vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevAniGif - als kostenlose Vollversion auf unserer vb@rchiv CD Vol.5  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Split ist zu langsam 
Autor: David M
Datum: 22.01.03 08:25

Morgen!

Also ich habe diverse CSV-Dateien, die ich alle nach folgendem
Schema einlese:
1.) Gesamte Datei nach string "s" einlesen
2.) "s" in einzelne Blöcke teilen (nach Array "strT()" )
3.) Jeweils 26 Felder zu einem Datensatz in der DB zuordnen.

Der grobe Code sieht folgendermaßen aus:

DateiName = OptionenTab("Pfad für Daten-Datei")
DateiNr = FreeFile
X = 1
zahl = 0
s = ""
felder = 26
      'Gesamte Datei einlesen nach s
      Open DateiName For Input As DateiNr
           Do While Not EOF(DateiNr)
                Line Input #DateiNr, strLine
                s = s & strLine
           Loop
      Close DateiNr
 
strT = Split(s, "|")          's aufteilen -> Felderunterteilung
While X <> 0
    X = InStr(X + 1, s, "|")  'Nach Trennzeichen | aufteilen
    zahl = zahl + 1             'Zahl der Elemente ermitteln
Wend
zahl = zahl - 1                  'da Wert um 1 zu hoch, künstlich um eins 
' erniedrigen
 
For Y = 0 To (zahl / felder) - 1  'Für alle Datensätze
    If (Not rs.EOF) Then
        rs.AddNew
        rs("MySQL_ID") = strT(Y * felder)
        rs("kunde_seit") = strT(Y * felder + 1)
        rs("username") = strT(Y * felder + 2)
        'usw.  (der Übersichtlichkeit halber weggelassen)
        rs.Update
    End If
Next Y
Das funktioniert im Prinzip auch recht gut.
Leider ist vor allem die Zeile
strT = Split(s, "|")
sehr langsam.
Das Einlesen der Datei sowie das Schreiben in die DB geht einigermaßen
zügig, aber das Aufteilen in das Hilfsarray "strT" dauert bei einigen Tausend
Datensätzen einige Stunden ...
Kann man das irgendwie beschleunigen?

Anmerkung:
das Einlesen der gesamten Datei mache ich deshalb, weil die einzelnen
Datensätze NICHT in einer Zeile stehen und sogar einzelne Felder
über mehrere Zeilen gehen können, was das zeilenweise Abarbeiten
ziemlich erschwert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Split ist zu langsam1.109David M22.01.03 08:25
Re: Split ist zu langsam609Marcus W22.01.03 08:57
Re: Split ist zu langsam635David M22.01.03 09:10
Re: Split ist zu langsam651ModeratorDieter22.01.03 09:18
Neue Version619David M22.01.03 10:56
Re: Split ist zu langsam792ModeratorDieter22.01.03 09:01
Re: Split ist zu langsam572David M22.01.03 09:17
Ich will ja nicht stören, aber599unbekannt22.01.03 12:24

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel