vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 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
Re: große datein 
Autor: unbekannt
Datum: 08.04.03 01:11

Hi ,

jetzt brauchst Du nur noch einen Filescanner, der das Vorhandensein dieser "eigenen Trenner" der Files sucht. Der muss die Position vom Beginn eines Trenners mitteilen.

Für diese Masse an Bytes ist derzeit VBEx32.DLL das schnellste, was diese Aufgabe überhaupt bewältigen kann.

Da aber VBEx32.DLL von Uns mittlererweile als Open Source erklärt wurde, hier dieser Codeteil der das macht. Allerdings musst Du den von PowerBASIC umsetzen (ist nicht schwer), oder nimmst einfach die bereits kompilierte DLL - wie's beliebt.

Denke immer daran: Dieser Code hier ist nicht nur schnell - er ist brutal schnell.

' Function 62
' VBSTRINGINFILE ********( nicht geändert )************
' Local Vars Register zu DIM
FUNCTION VBSTRINGINFILE ALIAS "VBSTRINGINFILE" (BYREF sFileName AS STRING, _
                        BYREF sFindStr AS STRING, _
                        BYREF sDelim AS STRING, _
                        BYVAL nStep AS LONG) EXPORT AS STRING
     DIM f AS INTEGER
     DIM g AS STRING,a AS STRING, x AS STRING
 
     DIM n AS LONG, m AS LONG, s AS LONG, y AS LONG, z AS LONG
 
     IF sFileName = "" THEN EXIT FUNCTION
     IF DIR$(sFileName)="" THEN EXIT FUNCTION
 
     IF nStep < LEN(sFindStr) THEN nStep = LEN(sFindStr)
     f = FREEFILE
     OPEN sFileName FOR BINARY AS #f
        IF f=0 THEN EXIT FUNCTION
        IF nStep > LOF(f) THEN nStep = LEN(sFindStr)
        m = LOF(f)\nStep
        FOR n = 1 TO m
            GET$ #f,nStep,g
            a = a + g
            s = PARSECOUNT(a,sFindStr)
            IF s > 0 THEN
               FOR z = 1 TO s
                   y = INSTR(y+1,a,sFindStr)
                   IF y>0 THEN x = x + TRIM$(STR$(((n*nstep)-nStep)+y)) + sDelim
               NEXT
               a = ""
            ELSE
               a = g
            END IF
        NEXT
 
        z = LOF(f) MOD nStep
        IF z > 0 THEN
           GET$ #f,z, a
           s=PARSECOUNT(a,sFindStr)
           IF s > 0 THEN
              FOR z=1 TO s
                  y=INSTR(y+1,a,sFindStr)
                  IF y>0 THEN x = x + TRIM$(STR$(((n*nstep)-nStep)+y)) + sDelim
              NEXT
           END IF
        END IF
 
     CLOSE #f
     IF x <> "" THEN
        IF RIGHT$(x,LEN(sDelim))= sDelim THEN x = LEFT$(x,LEN(x)-LEN(sDelim))
     END IF
     FUNCTION = x
END FUNCTION
Es gibt eigentlich nur zwei PowerBASIC - Feinheiten wie Get$ und Parsecount.

Get$ ist leicht nachgebaut:

s = Space$(Anzahl Bytes)
Get #1,s ... in VB.

ParseCount eigentlich auch ... aber dazu später mehr
0
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
große datein160MasterG07.04.03 18:49
Re: große datein253unbekannt07.04.03 19:00
Re: große datein200MasterG07.04.03 19:38
Re: große datein239unbekannt07.04.03 20:11
Re: große datein83MasterG07.04.03 20:14
Re: große datein248unbekannt07.04.03 20:22
Re: große datein81MasterG07.04.03 20:26
Re: große datein77MasterG08.04.03 00:13
Re: große datein245unbekannt08.04.03 01:11
Re: große datein70MasterG08.04.03 10:06
gerade zahl?124MasterG08.04.03 13:44
Re: gerade zahl?249kali08.04.03 13:50
Re: gerade zahl?250illuminator08.04.03 13:51
Re: gerade zahl?73MasterG08.04.03 13:55
Do While und kein end.........72MasterG08.04.03 16:33

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