vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 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

Fortgeschrittene Programmierung
Datenstring aufbereiten 
Autor: Wöllmi
Datum: 11.07.03 23:02

Hi,

ich habe ein kleines Problem mit der Aufbereitung von Datenstrings
um diese z.B. in das sevDataGrid zu bekommen.

Basis:
Aus einer Quelldatei, die wie folgt von einem anderen Programm
erzeugt wurde:
  ......
   Open sFile For Random As #1 Len = 128
   Put #1, , sDataSet128
  ......
..., möchte ich alle echten Datensätze in die Form:
"Wert1;Wert2;Wert3; .......;Wert14"
bringen, um diese dann weiter zu verarbeiten. Export in CSV File, Import in sevDatGrid usw.

Dateiaufbau:
- Jeder Eintrag ist 128 Zeichen lang!
- Den Daten vorangestellt sind Infos. Der Infoblock wird immer mit "@" abge-
schlossen! D.h. auch Textinfos wurden vorher in Stücke zu je 128 Zeichen zerlegt.
- Die Daten (14 Stück) sind durch Leerzeichen (keine feste Anzahl!)
getrennt. immer in einem Datensatz zu 128 Zeichen enthalten z.B.
Kopfinformationen....
.....................
....................@
Zeile n+1
Zeile n+2
Zeile n+3
 123 45 AA   1234 +111 -1234 7   8   9  10  11  12   13  14
Ich habe mir einen Algorithmus ausgedacht, der zwar funktioniert, aber leider
nicht der schnellste ist. Hat jemand eine gute Idee dies zu beschleunigen??
Private Sub Command3_Click()
 
     Dim sDataSet As String * 128              'Zielstring für einzulesende 
     ' Daten
     Dim lngSetNum As Long                     'Anzahl der enthaltenen 
     ' Datensätze
     Dim bFirstSpaceFound As Boolean           'Kennzeichen für erstes 
     ' Leerzeichen
     Dim lngPosFirstDataSet As Long            'zeigt den ersten echten 
     ' Datensatz
 
     Dim iFile As Integer                      'Variable für Dateinummer
     Dim lngIdx As Long                        'Laufvariablen
     Dim iIdx As Integer
 
     Dim sNewData As String                    'Ergebnisstring mit 
     ' aufbereiteten Daten
 
     'Datei öffnen
     iFile = FreeFile
     Open App.Path & "\" & "01010006.d01" For Random As #iFile Len = 128
 
     'Anzahl der Gesamtdatensätze bestimmen incl. Kopfinfos
     lngSetNum = LOF(iFile) / Len(sDataSet)
 
     'Vor den eigentlichen Daten befindet sich eine unbestimmte
     'Anzahl von Informationen (immer mit @ abgeschlossen!)
     'Finde "@"
     For lngIdx = 1 To lngSetNum
         Get #iFile, lngIdx, sDataSet
         If InStr(sDataSet, "@") <> 0 Then
            'Nach 3 weiteren Infozeilen zu 128 Zeichen folgen die Daten!
            lngPosFirstDataSet = lngIdx + 4
            Exit For
         End If
     Next lngIdx
 
     'Alle echten Datensätze durchforsten
     For lngIdx = lngPosFirstDataSet To lngSetNum
         Get #iFile, lngIdx, sDataSet
         sNewData = ""
         bFirstSpaceFound = True      'noch kein Leerzeichen
         For iIdx = 1 To 128
             Select Case InStr("0123456789ABCDEF-+ .,", UCase(Mid(sDataSet, _
               iIdx, 1)))
                Case 19  'pos. des Leerzeichens in der Vergleichs-Zeichenkette
                    If Not bFirstSpaceFound Then
                       sNewData = sNewData & ";"
                       bFirstSpaceFound = True
                    End If
                Case Is > 0 'wenn erlaubtes Zeichen gefunden
                    sNewData = sNewData & Mid(sDataSet, iIdx, 1)
                    bFirstSpaceFound = False
             End Select
         Next iIdx
 
         'infolge des Algo. wird noch das letzte ";" wieder entfernt
         If Right(sNewData, 1) = ";" Then
            sNewData = Left(sNewData, Len(sNewData) - 1)
         End If
 
         'Verarbeiten des aufbereiteten Datenstrings
         'z.B. Platzieren in einer Tabelle o.ä.
         'z.B. sub_PlaceInDatatable sNewData
 
     Next lngIdx
 
     Close #iFile
 
End Sub
Vielen Dank im voraus.

Woellmi

Tschaui
Woellmi

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Datenstring aufbereiten752Wöllmi11.07.03 23:02
Re: Datenstring aufbereiten460dbayer12.07.03 09:01
Re: Datenstring aufbereiten451Wöllmi12.07.03 10:39
Re: Datenstring aufbereiten530dbayer12.07.03 10:50
Re: Datenstring aufbereiten423Wöllmi12.07.03 11:11

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