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-2025
 
zurück

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

Allgemeine Diskussionen
Code 2 
Autor: unbekannt
Datum: 19.06.03 17:40

Public Function GetIndexFromString(ByVal sSuch As String, _
                             Optional ByVal nMode As Byte = 0, _
                             Optional vErg As Variant) As Long
    Dim n     As Long
    Dim i     As Long
    Dim s     As String
    Dim arS() As Long
 
    If tmpText = "" Then Exit Function
    n = SendMessage(tmphWnd, EM_GETLINECOUNT, 0, 0&)
    For i = 0 To n - 1
       s = Space(tmpBuffer)
       SendMessage tmphWnd, EM_GETLINE, i, ByVal s
       If tmpCaseSens Then
          If sSuch = Trim(s) Then
             GetIndexFromString = i
             If nMode = 0 Then Exit For
             ReDim Preserve arS(i)
             arS(i) = i
          End If
       Else
          If UCase(sSuch) = UCase(Trim(s)) Then
             GetIndexFromString = i
             If nMode = 0 Then Exit For
             ReDim Preserve arS(i)
             arS(i) = i
          End If
       End If
    Next
    If nMode > 0 Then
       vErg = arS()
       GetIndexFromString = UBound(arS())
    End If
End Function
 
Function GetStringFromIndex(ByVal nIndex As Long) As String
    Dim s As String
    If nIndex < 0 Then Exit Function
    s = Space(tmpBuffer)
    n = SendMessage(tmphWnd, EM_GETLINECOUNT, 0, 0&)
    SendMessage tmphWnd, EM_GETLINE, nIndex, ByVal s
    GetStringFromIndex = Trim(s)
End Function
 
Public Property Get Count() As Long
   Count = SendMessage(tmphWnd, EM_GETLINECOUNT, 0, 0&)
End Property
 
Public Property Get CaseSensitive() As Boolean
    CaseSensitive = tmpCaseSens
End Property
 
Public Property Let CaseSensitive(ByVal vNewValue As Boolean)
    tmpCaseSens = vNewValue
End Property
 
Public Property Get Delimeter() As String
    Delimeter = tmpDelimeter
End Property
 
Public Property Let Delimeter(ByVal vNewValue As String)
    tmpDelimeter = vNewValue
End Property
 
Public Sub ReplaceStringByString(ByVal sSuch As String, sRepl As String, _
                                 Optional nSensitive As Byte = 0)
    Dim n As Long
    Dim mergeSens As Boolean
    Dim x As Long
    Dim y As Long
 
    mergeSens = tmpCaseSens
    If nSensitive = 1 Then tmpCaseSens = True
    n = GetIndexFromString(sSuch)
    x = SendMessage(tmphWnd, EM_LINEINDEX, n, 0&)
    y = SendMessage(tmphWnd, EM_LINELENGTH, x, 0&)
    SendMessage tmphWnd, EM_SETSEL, x, ByVal (x + y)
    SendMessage tmphWnd, EM_REPLACESEL, False, ByVal sRepl
    tmpCaseSens = mergeSens
End Sub
 
Public Sub ReplaceStringByIndex(ByVal nIndex As Long, sRepl As String)
    Dim x As Long, y As Long
 
    If nIndex > SendMessage(tmphWnd, EM_GETLINECOUNT, 0, 0&) Then Exit Sub
    If nIndex < 0 Then Exit Sub
    x = SendMessage(tmphWnd, EM_LINEINDEX, nIndex, 0&)
    y = SendMessage(tmphWnd, EM_LINELENGTH, x, 0&)
    SendMessage tmphWnd, EM_SETSEL, x, ByVal (x + y)
    SendMessage tmphWnd, EM_REPLACESEL, False, ByVal sRepl
End Sub
 
Public Function SetBookMark(ByVal nBook As Variant) As Variant
    Dim n As Long, x As Long, y As Long
 
    If Not IsNumeric(nBook) Then
       n = GetIndexFromString(nBook)
       x = SendMessage(tmphWnd, EM_LINEINDEX, n, 0&)
       y = SendMessage(tmphWnd, EM_LINELENGTH, x, 0&)
       SendMessage tmphWnd, EM_SETSEL, x, ByVal (x + y)
       SetBookMark = n
    Else
       x = SendMessage(tmphWnd, EM_LINEINDEX, nBook, 0&)
       y = SendMessage(tmphWnd, EM_LINELENGTH, x, 0&)
       SendMessage tmphWnd, EM_SETSEL, x, ByVal (x + y)
       SetBookMark = GetStringFromIndex(CLng(nBook))
    End If
End Function
 
Public Property Get GetBookMark() As Long
    Dim x As Long, y As Long
    SendMessage tmphWnd, EM_GETSEL, VarPtr(x), ByVal VarPtr(y)
    GetBookMark = SendMessage(tmphWnd, EM_LINEFROMCHAR, x, 0&)
End Property
 
Public Sub Sort(Optional ByVal nMode As Byte = 0)
    Dim x As Long, y As Long
    Dim xx As Long
    Dim a As String, b As String
 
    xx = SendMessage(tmphWnd, EM_GETLINECOUNT, 0, 0&)
    For x = 0 To xx
       For y = x To xx + 1
          a = GetStringFromIndex(x)
          b = GetStringFromIndex(y)
          If b = "" Then Exit Sub
          Select Case nMod
             Case 0
                If UCase$(a) > UCase(b) Then
                    ReplaceStringByIndex y, a
                    ReplaceStringByIndex x, b
                End If
             Case 1
                If UCase$(a) < UCase(b) Then
                    ReplaceStringByIndex y, a
                    ReplaceStringByIndex x, b
                End If
          End Select
     Next y, x
End Sub
0
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Jepp Here is: Lordchens TextMapp Class971unbekannt19.06.03 17:36
Code 1465unbekannt19.06.03 17:40
Code 2560unbekannt19.06.03 17:40
Anwendungs - Minibeispiel:469unbekannt19.06.03 19:16
Vielleicht traut sich der Fragesteller nicht 374unbekannt19.06.03 21:30
Re: Vielleicht traut sich der Fragesteller nicht 391unbekannt19.06.03 21:34
Re: Vielleicht traut sich der Fragesteller nicht 367Dietmar20.06.03 09:08
Re: Vielleicht traut sich der Fragesteller nicht 394unbekannt20.06.03 12:38
Re: Vielleicht traut sich der Fragesteller nicht 409Dietmar20.06.03 13:35
Re: Vielleicht traut sich der Fragesteller nicht 362unbekannt20.06.03 17:14
Re: Vielleicht traut sich der Fragesteller nicht 401Dietmar20.06.03 17:25
Re: Vielleicht traut sich der Fragesteller nicht 322unbekannt20.06.03 18:18
Re: Vielleicht traut sich der Fragesteller nicht 424Dietmar20.06.03 18:23
Dieses ist die Frage:346unbekannt21.06.03 12:47
Mit Lordchens TextMappClass vielleicht?345Dietmar21.06.03 13:07
Die konventioelle Lösung (ohne Excel-Zugriff)393unbekannt21.06.03 13:13
TickCount bei 10.000 Iterationen399unbekannt21.06.03 13:26
"Etwas unkonventionelle Lösung (ohne Excel-Zugriff)407unbekannt21.06.03 13:55
Also folgendes378unbekannt22.06.03 00:38

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