[VisualBasic] Text zeilenweise einlesen und bearbeiten

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Radiergimmy, 5. August 2008 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 5. August 2008
    Text zeilenweise einlesen und bearbeiten

    hey leutz wie kann man bei VB6 text nach nem 2ten punkt löschen und durch was anderes ersetzen und das ganze auch noch bei mehrern linien? Also bei 134.147.64.11 soll dann 64.11 durch 0.0 erstezt werden sodass nur noch 134.147.0.0 da steht und dann sollte man doch auch noch iwie das so machen können dass das dann schlussendlich so dasteht:

    134.147.0.0 134.147.255.255

    wenn man zb ne grims ping queue nach nem anderen port abscannen will mit nem scanny wäre es doch nicht schlecht wenn man die queue importiert und das proggie macht ne bat draus.
    und dann hat man noch ne textbox mit dem text der als trenn zeichen verwendet wird.

    nehmen wir mal an die queue sieht so aus:

    "PubFind","134.147.64.11-254"
    "PubFind","163.1.0.90-254"
    "PubFind","64.202.189.170-254"
    "PubFind","82.165.99.173-254"
    "PubFind","128.243.40.30-254"
    "PubFind","128.83.40.144-254"

    dann kann man ja ", Pubfind und -254 einfach entfernen und stehen bleibt dann noch:

    134.147.64.11
    163.1.0.90
    64.202.189.170
    82.165.99.173
    128.243.40.30
    128.83.40.144

    das soll dann so bearbeitet werden dass dann sowas dran steht

    trenn.text = " "

    134.147.0.0 trenn.text 134.147.255.255
    163.1.0.0 trenn.text 163.1.255.255
    64.202.0.0 trenn.text 163.1.255.255
    82.165.0.0 trenn.text 163.1.255.255
    128.243.0.0 trenn.text 163.1.255.255
    128.83.0.0 trenn.text 163.1.255.255
     
  2. 5. August 2008
    AW: Text nach zweitem Punkt löschen

    hab schon ewig kein VB mehr benutzt, aber versuch ma das:

    Code:
    Dim IP As String
    IP = "127.0.0.1"
    
    Dim tmp() as String
    
    tmp = Split(IP, ".")
    
    Dim neueIP As String
    
    neueIP = tmp(1) & "." & tmp(2)
    
     
  3. 5. August 2008
    AW: Text nach zweitem Punkt löschen

    array beginnt beim lbound mit 0

    ergo: neueIP = tmp(0) & "." & tmp(1)
     
  4. 5. August 2008
    AW: Text nach zweitem Punkt löschen

    Dachte in VB fängt die Indizierung bei 1 an? (außer wenn mans explizit anders eingestellt hat)
     
  5. 5. August 2008
    AW: Text nach zweitem Punkt löschen

    denken heist nicht wissen

    einzig und allein listview arbeitet mit mit lbound 1, wenn man das so sagen kann
     
  6. 5. August 2008
    AW: Text nach zweitem Punkt löschen

    wie soll ich das jetzt einbinden?

    Code:
    Dim IP As String
    IP = "127.0.0.1"
    
    Dim tmp() as String
    
    tmp = Split(IP, ".")
    
    Dim neueIP As String
    
    neueIP = tmp(0) & "." & tmp(1)
     
  7. 5. August 2008
    AW: Text nach zweitem Punkt löschen

    So:

    Code:
    Dim IP As String
    
    IP = "128.83.40.144"
    
    Dim tmp() As String
    
    tmp = Split(IP, ".")
    
    Text1.Text = tmp(0) & "." & tmp(1) & ".0.0" & " " & tmp(0) & "." & tmp(1) & ".255.255"
    Da würde aus

    Code:
    128.83.40.144 
    das:

    Code:
    128.83.0.0 128.83.255.255
    Des musste eben auf deine IP-Liste anwenden...
     
  8. 5. August 2008
    AW: Text nach zweitem Punkt löschen

    und wie bekomm ich das dann auf jede zeile meiner textbox bzw liste angewendet?
     
  9. 6. August 2008
    AW: Text nach zweitem Punkt löschen

    nicht getestet

    Code:
    Dim Long01 as Long
    Dim StringArray01() as String
    Dim StringArray02() as String
    
    'Textbox - Text1 = INPUT
    'Listbox - List1 = OUTPUT
    
    List1.Clear
    
    StringArray01() = Split(Text1.Text, vbcrlf)
    
    For Long01 = Lbound(StringArray01) to Ubound(StringArray01)
     If StringArray01(Long01) <> "" then
     StringArray02() = Split(StringArray01(Long01), ".")
     
     If Ubound(StringArray02) > 0 then
     List1.Add StringArray02(0) & "." &StringArray02(1) & ".0.0 " & _
     StringArray02(0) & "." & StringArray02(1) & ".255.255"
     End If
     End If
    Next Long01
     
  10. 6. August 2008
    AW: Text nach zweitem Punkt löschen

    mhm sorry bin aber noch ziemlicher anfänger, also wo müsst ich das einfügen? hier mal mein code:

    Spoiler
    Code:
    Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long
    Private Declare Function GetSaveFileName Lib "comdlg32.dll" Alias "GetSaveFileNameA" (pOpenfilename As OPENFILENAME) As Long
    
    Private Type OPENFILENAME
     lStructSize As Long
     hwndOwner As Long
     hInstance As Long
     lpstrFilter As String
     lpstrCustomFilter As String
     nMaxCustFilter As Long
     nFilterIndex As Long
     lpstrFile As String
     nMaxFile As Long
     lpstrFileTitle As String
     nMaxFileTitle As Long
     lpstrInitialDir As String
     lpstrTitle As String
     flags As Long
     nFileOffset As Integer
     nFileExtension As Integer
     lpstrDefExt As String
     lCustData As Long
     lpfnHook As Long
     lpTemplateName As String
    End Type
    
    Private Const OFN_HIDEREADONLY = &H4
    Private Const OFN_PATHMUSTEXIST = &H800
    Private Const OFN_FILEMUSTEXIST = &H1000
    Private Const OFN_OVERWRITEPROMPT = &H2
    
    Function DialogOpenSave$(F As Form, ByVal ftitle$, fpfad$, ByVal ffile$, ByVal ffilter$, ByVal fext$, SaveFile%)
     Dim O As OPENFILENAME
     Dim wSize As Long
     Dim Memhandle As Long
    
     szFile$ = ffile$ + String$(128 - Len(ffile$), 0)
     szFilter$ = ffilter$ + "||"
     Do While InStr(szFilter$, "|")
     szFilter$ = Left$(szFilter$, InStr(szFilter$, "|") - 1) + Chr$(0) + Mid$(szFilter$, InStr(szFilter$, "|") + 1)
     Loop
     O.lStructSize = Len(O)
     O.hwndOwner = F.hWnd
     O.nFilterIndex = 1
     O.nMaxFile = Len(szFile$)
     Select Case SaveFile%
     Case 0:
     O.flags = OFN_HIDEREADONLY Or OFN_PATHMUSTEXIST Or OFN_FILEMUSTEXIST
     Case 1:
     O.flags = OFN_HIDEREADONLY Or OFN_PATHMUSTEXIST Or OFN_OVERWRITEPROMPT
     Case 2:
     O.flags = OFN_HIDEREADONLY Or OFN_PATHMUSTEXIST
     End Select
    
     O.lpstrFile = szFile$
     O.lpstrFilter = szFilter$
     O.lpstrTitle = ftitle$
     O.lpstrDefExt = fext$
     O.lpstrInitialDir = fpfad$
     If SaveFile% = 0 Then result = GetOpenFileName(O) Else result = GetSaveFileName(O)
    
     file$ = Left$(O.lpstrFile, InStr(O.lpstrFile, Chr$(0)) - 1)
    
     If result = 0 Then DialogOpenSave$ = "": Exit Function
    
     fpfad$ = Left$(file$, O.nFileOffset)
     DialogOpenSave$ = Right$(file$, Len(file$) - O.nFileOffset)
    End Function
    
    
    Function Dialog_Open$(F As Form, ByVal ftitle$, fpfad$, ByVal ffile$, ByVal ffilter$, ByVal fext$)
     Dialog_Open$ = DialogOpenSave$(F, ftitle$, fpfad$, ffile$, ffilter$, fext$, 0)
    End Function
    
    Function Dialog_Save$(F As Form, ByVal ftitle$, fpfad$, ByVal ffile$, ByVal ffilter$, ByVal fext$)
     Dialog_Save$ = DialogOpenSave$(F, ftitle$, fpfad$, ffile$, ffilter$, fext$, 1)
    End Function
    
    Private Sub Command3_Click()
     p$ = CurDir$
     F$ = "scan.bat"
     a$ = Dialog_Save$(Me, "Datei speichern", p$, F$, "Batch-Dateien|*.bat|Alle Dateien|*.*", "bat")
     If Right$(p$, 1) <> "\" Then p$ = p$ + "\"
    
    FileNum = FreeFile
    Open p$ & "scan.bat" For Output As FileNum
    Print #FileNum, Text9.Text
    Close FileNum
     
    End Sub
    
    Private Sub Command1_Click()
    Form1.Text9.Text = Form1.Text9.Text + Text11.Text & " " & Text1.Text & "." & Text2.Text & "." & Text3.Text & "." & Text4.Text + Text10.Text + Text5.Text & "." & Text6.Text & "." & Text7.Text & "." & Text8.Text + vbNewLine
    End Sub
    
    Private Sub Command2_Click()
    Clipboard.Clear
    Clipboard.SetText (Text9.Text)
    End Sub
    
    Private Sub Command4_Click()
     p$ = CurDir$
     F$ = ""
     a$ = Dialog_Open$(Me, "Datei öffnen", p$, F$, "Text-Dateien|*.txt|Alle Dateien|*.*", "txt")
     If Right$(p$, 1) <> "\" Then p$ = p$ + "\"
    Dim FileLength
    F = p$ + a$
    Open F For Input As #1
    FileLength = LOF(1)
    t = Input(FileLength, #1)
    Close #1
    Text9.Text = t
    
    Text9.Text = Replace(Text9.Text, "Pubfind", "", 1, -1, 1)
    Text9.Text = Replace(Text9.Text, ",", "", 1, -1, 1)
    Text9.Text = Replace(Text9.Text, "-254", "", 1, -1, 1)
    Text9.Text = Replace(Text9.Text, """", "", 1, -1, 1)
    
    End Sub
     
  11. 6. August 2008
    AW: Text zeilenweise einlesen und bearbeiten

    wo willst du es den einfügen. btw wenn du das so fragst wundert es mich wie du bis jetzt so weit gekommen bist, auch wenns crappy ist.

    mach halt einfach nen neuen commandbutton und füg den code mit entesprechendem verweis auf die textbox ein und erstell noch ne listbox.
     
  12. 6. August 2008
    AW: Text zeilenweise einlesen und bearbeiten

    ich würds gern bei Private Sub Command4_Click() einbauen, nur weiß ich nich wie.
     
  13. 6. August 2008
    AW: Text zeilenweise einlesen und bearbeiten

    verweis auf die textbox nummer 9
     
  14. 6. August 2008
    AW: Text zeilenweise einlesen und bearbeiten

    ok aber in deinem code ist von ner listbox die rede, die muss ich dann noch extra hinmachen oder?

    und wo genau muss ich dann deinen code einfügen? hab hier mal n bsp, musst sagen obs so geht.

    Code:
    Private Sub Command4_Click()
    
    If Text10.Text = "" Then
    Text10.Text = " "
    End If
    
     p$ = CurDir$
     F$ = ""
     a$ = Dialog_Open$(Me, "Datei öffnen", p$, F$, "Text-Dateien|*.txt|Alle Dateien|*.*", "txt")
     If Right$(p$, 1) <> "\" Then p$ = p$ + "\"
    Dim FileLength
    F = p$ + a$
    Open F For Input As #1
    FileLength = LOF(1)
    t = Input(FileLength, #1)
    Close #1
    Text9.Text = t
    
    Text9.Text = Replace(Text9.Text, "Pubfind", "", 1, -1, 1)
    Text9.Text = Replace(Text9.Text, ",", "", 1, -1, 1)
    Text9.Text = Replace(Text9.Text, "-254", "", 1, -1, 1)
    Text9.Text = Replace(Text9.Text, """", "", 1, -1, 1)
    
    Dim Long01 as Long
    Dim StringArray01() as String
    Dim StringArray02() as String
    
    'Textbox - Text1 = INPUT
    'Listbox - List1 = OUTPUT
    
    List1.Clear
    
    StringArray01() = Split(Text9.Text, vbcrlf)
    
    For Long01 = Lbound(StringArray01) to Ubound(StringArray01)
     If StringArray01(Long01) <> "" then
     StringArray02() = Split(StringArray01(Long01), ".")
     
     If Ubound(StringArray02) > 0 then
     List1.Add StringArray02(0) & "." &StringArray02(1) & ".0.0 " & _
     StringArray02(0) & "." & StringArray02(1) & ".255.255"
     End If
     End If
    Next Long01
    
    End Sub
    wenn ich es so mach und keine listbox einfüge dann kommt n error bei
    Code:
    List1.Clear
    und wenn ich ne listbox rein mach und auf visible=flase setzte kommt n error
    Code:
    List1.[COLOR="Red"]Add[/COLOR]
    und wenn ich es auf visible=true setze kommt der selbe error, also hab ich mal geguckt was es alles mit "add" gibt, leider gibts nur "AddItem" und das bringt da nix.
     
  15. 6. August 2008
    AW: Text zeilenweise einlesen und bearbeiten

    wieso bringt additem da nix? das ist genau passend

    wie gesagt habs nicht gestestet und richtig müsste es .additem heisen

    listbox musste natürlich einfügen, wie beschrieben
     
  16. 9. August 2008
    AW: Text zeilenweise einlesen und bearbeiten

    dank Hardwarehunger hat sich alles geklärt, an dieser stelle nochmal danke an alle die mir geholfen haben. mfg Radiergimmy

    ~closed~​
     
  17. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.