collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 38
  • Punkt Versteckte: 0
  • Punkt Mitglieder: 0

Es sind keine Mitglieder online.

* Forenstatistik

  • stats Mitglieder insgesamt: 14260
  • stats Beiträge insgesamt: 69801
  • stats Themen insgesamt: 9391
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 415

Autor Thema: Suche in großen Dateien  (Gelesen 2161 mal)

Offline Lexboro

  • Access-User
  • *
  • Beiträge: 87
Suche in großen Dateien
« am: Juli 22, 2010, 15:47:35 »
Hallo zusammen,
da ich mit googln auch nicht weiter komme, poste ich mein Problem. Vielleicht hat ja einer von euch eine geniale Idee  :D

In einer csv.Datei (Fehlerliste) befinden sich Materialnummern. Diese Datei variiert zwischen 20MB..... 300MB. Die Datensätze sind durch HEX'0A' von einander gtrennt. Diese Datei soll eingelesen werden. Als Ergebniss soll heraus kommen, WELCHE Materialnummern vorkommen und WIE OFT.
Also die Form:
Nummer   Anzahl
12345        45
155456         3
2364455     12
.....

PROBLEM: Das dauert ewig !!! 500 Datensätze zu verarbeiten dauern 51s. Ich hab aber mindestens 8.000 Datensätze. Wie kann ich das schneller machen ??????????????? Hab schon alles versucht, doch DER Zeitfresser liegt im While...Wend Teil.

Hat jemand von euch eine Idee ??????

Gruß

Private Sub Befehl1154_Click()
On Error GoTo Error_Befehl1154_Click

    Dim bytFile         As Byte
    Dim strFile         As String
    Dim colErrorList    As Collection
    Dim strInputF       As String
    Dim strErrAnz       As String
    Dim dblErrors       As Double
    Dim FileLength
   
    strFile = Me.Text1151.Value
    bytFile = FreeFile
    Set colErrorList = New Collection

    Open strFile For Input As bytFile
    FileLength = LOF(bytFile)
    strInputF = Input(FileLength, bytFile)
    Close #bytFile

    Dim strSearch0A     As String
    Dim strSearch3B     As String
    Dim strSearch3Bb    As String
    Dim strSearch20     As String
    Dim strSearchTXT    As String
    Dim strSearchErg    As String
    Dim lngPosStart0A   As Long
    Dim lngPosErg0A     As Long
    Dim lngPosErg20     As Long
   
    strSearch0A = Chr$(10): strSearch20 = " ": strSearch3B = ";"
    lngPosStart0A = 1: lngPosErg0A = 1
    strSearchTXT = ".: AT": strErrAnz = 1
   
    Dim dblZAEHLER      As Integer
    dblZAEHLER = 0
    vntStartZeit = Now

    While lngPosErg0A <> 0
        lngPosErg0A = InStr(lngPosStart0A, strInputF, strSearchTXT)
        lngPosErg20 = InStr(lngPosErg0A + 4, strSearch20)
        strSearchErg = Mid$(strInputF, lngPosErg0A + 5, lngPosErg20 - lngPosErg0A - 5)
        lngPosStart0A = lngPosErg0A + 1
        colErrorList.Add strErrAnz, strSearchErg
        dblZAEHLER = dblZAEHLER + 1
        If dblZAEHLER = 500 Then GoTo Error_Befehl1154_Click
    Wend
    Call Zeitnahme

    '        Debug.Print dblZAEHLER, strSearchErg, colErrorList(strErrNum)
    Set colErrorList = Nothing
       
Exit_Befehl1154_Click:
    Exit Sub
   
Error_Befehl1154_Click:
    If Err.Number = 457 Then GoTo Error_457
    Call Zeitnahme
    MsgBox Err.Number
    Set colErrorList = Nothing
    Resume Exit_Befehl1154_Click:

Error_457:
    dblErrors = CDbl(colErrorList(strSearchErg))
    dblErrors = dblErrors + 1
    strErrAnz = CStr(dblErrors)
    colErrorList.Remove (strSearchErg)
    colErrorList.Add strErrAnz, strSearchErg
    Resume Next
End Sub
 

Offline Lexboro

  • Access-User
  • *
  • Beiträge: 87
Re: Suche in großen Dateien
« Antwort #1 am: Juli 22, 2010, 18:40:36 »
Ich hab es über bytweises Einlesen und natürlich Anpassung aller Algorithmen hinbekommen.
Für die Verarbeitung von 28.420 Datensätzen (Größe der csv-Datei: 29,933MB) werden nur noch 27Sekunden benötigt. Ist ein beträchtlicher Zeitunterschied aber falls jemand noch eine besserer Optimierung weiss, bin ich natürlich sehr dankbar !!!

Gruss
 

 

Suche Button und Serienbrief über Access öffnen / ablegen

Begonnen von Muhkuh86Board Access-Hilfe

Antworten: 18
Aufrufe: 13939
Letzter Beitrag Mai 12, 2010, 11:38:08
von Muhkuh86
Suche Access Admin Tool

Begonnen von heinbolloBoard Access-Hilfe

Antworten: 3
Aufrufe: 3843
Letzter Beitrag Juni 14, 2010, 15:19:30
von heinbollo
Suche worddokument mit access

Begonnen von thomutBoard Access-Hilfe

Antworten: 13
Aufrufe: 8337
Letzter Beitrag Juni 19, 2010, 15:45:52
von database
Suche nach der richtigen Syntax (…datumsbezogen)

Begonnen von BrunielaBoard Tabelle/Abfrage

Antworten: 1
Aufrufe: 2254
Letzter Beitrag Juni 24, 2010, 11:31:37
von blackoutNO
DS-Suche aus Hauptformular in Unterformular (Code vorhanden)

Begonnen von gastBoard Access Programmierung

Antworten: 19
Aufrufe: 11641
Letzter Beitrag August 03, 2010, 16:06:33
von borst1