vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 3.0 - Professionelle Toolbars im modernen Design!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

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

Visual-Basic Einsteiger
Textbox nach String durchsuchen und gefundene Offsets listen 
Autor: Morty
Datum: 26.07.12 20:12

Hallo

ich habe eine kleine Funktion samt Schleife geschrieben die im moment so aussieht:

Public Function SCAN_CODE(tForm As Form, OBJ_CODE As String)
 
Dim i As Integer
Dim CODE_LENGTH As Integer
    CODE_LENGTH = Len(OBJ_CODE)
 
For i = 1 To Len(tForm.TXT_HEX.Text) Step 1
    If Mid(tForm.TXT_HEX.Text, i, CODE_LENGTH) = OBJ_CODE Then _
      LST_OFFSETS.AddItem (i - 1) / 2
Next
 
End Function
Im grunde genommen versuche ich folgendes:

Ich suche mit dieser funktion nach bestimmten Hex/textstrings in einer Richtextbox in der ein hexdump einer Datei (1-500 kb) liegt. Die funktion sucht also und spuckt mir die start positionen zu den gefundenen einträgen in einer Listbox raus. Ein klick auf den Einträg lädt genau den Hexstring und zeigt den verteilt auf einige textboxen und labels an.

Das ganze funktioniert auch sehr gut, problem ist nur das es extrem langsam ist und mit den größeren dateien eine ewigkeit braucht, was anscheinend auch daran liegt das wirklich von jedem zeichen an in der box nach dem string gesucht wird..

Ich hab das ganze auch mal mit der Instr funktion versucht krieg es aber nicht wirklich gebacken da hab ich ne ziemlich verschachtelte version zusammengeschrieben die funktionert aber das problem aufweist das wenn der gesuchte string quasi an 1 stelle in der textbox gefunden wird nicht gelistet wird:

    Dim CurPNTR As String       '1. Code Offset
    Dim NextPNTR As String      '2. Code Offset
    Dim LastPNTR As String
 
    'Scan for enemy code offsets
 
    CurPNTR = (InStr(1, tForm.TXT_HEX.Text, HEXCODE) + 1) / 2
 
    If CurPNTR > 2 Then tForm.LST_OFFSETS.AddItem (CurPNTR - 1)
 
        NextPNTR = (CurPNTR + 1) * 2
 
    CurPNTR = (InStr(NextPNTR, tForm.TXT_HEX.Text, HEXCODE) + 1) / 2
 
    If CurPNTR > 1.5 Then tForm.LST_OFFSETS.AddItem CurPNTR - 1
 
        LastPNTR = (CurPNTR + 1) * 2
 
    CurPNTR = (InStr(LastPNTR, tForm.TXT_HEX.Text, HEXCODE) + 1) / 2
 
        If CurPNTR >= 2 Then tForm.LST_OFFSETS.AddItem CurPNTR - 1
Hat vielleicht hier jemand ein paar lösungsansätze parat? Wäre für jede hilfe dankbar.

Beitrag wurde zuletzt am 26.07.12 um 20:19:58 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Textbox nach String durchsuchen und gefundene Offsets listen1.173Morty26.07.12 20:12
Re: Textbox nach String durchsuchen und gefundene Offsets li...577Rippler26.07.12 20:53
Re: Textbox nach String durchsuchen und gefundene Offsets li...565Morty26.07.12 21:09

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-2024 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