happyman
Goto Top

String nach einem Doppelpunkt trennen

Hallo Forum,

ich hab ein Problem mit Visual Basic (aus Visual Studio 6), und zwar lese ich von einer Datei eine IP-adresse mit Port ein, sieht z.b. so aus:

192.168.0.1: 8080

Jetzt möchte ich diesen eingelesenen String in IP und Port trennen, also in ein Feld die IP (192.168.0.1) schreiben, und in ein anderes den Port (8080).

Da die IP-Adressen unterschiedlich lang sind (z.b.: 192.168.0.50: 80) kann ich nicht nach einer gewissen anzahl von Stellen den String trennen.

Mein Code (gekürzte Version, damit man sich aufs wesentliche konzentrieren kann) sieht folgendermaßen aus:

Dim IP_PORT As String
Dim IP As String
Dim PORT As String

Open "c:\Liste.txt" For Input As #1            ' Datei öffnen.  
Do While Not EOF(1)                            ' Auf Dateiende abfragen.  
   Line Input #1, IP_PORT                      ' Zeile Einlesen. 
   
   ----- Hier IP_PORT zu IP und PORT machen ------

   Text1.Text = IP                             ' getrennte IP und PORT ausgeben.  
   Text2.Text = PORT
Loop
Close #1                                       ' Datei schließen. 

Grüße happyman

Content-Key: 67482

Url: https://administrator.de/contentid/67482

Printed on: April 25, 2024 at 08:04 o'clock

Member: EvilMoe
EvilMoe Aug 30, 2007 at 11:21:45 (UTC)
Goto Top
Gibt es in VB keine Funktion die, die Position eines bestimmten Zeichens ermittelt. So wie in PHP "strpos"? Dann kannste den String an dieser stelle abschneiden...
Member: happyman
happyman Aug 30, 2007 at 11:32:13 (UTC)
Goto Top
meines wissens, nicht, hab auch schon in der MSDN lib geschaut, aber nichts brauchbares gefunden, das einzige, wäre nach einer best. anzahl von zeichen, aber das kann ich nicht verwenden, weil ja die IP's unterschiedliche Längen haben.
Member: talkinghands
talkinghands Aug 30, 2007 at 11:42:21 (UTC)
Goto Top
Hi,
gibt es in VB denn denn nicht eine Funktion wie in VScript - InStr() ??

The following examples use InStr to search a string:

Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP" ' String to search in.
SearchChar = "P" ' Search for "P".
MyPos = Instr(4, SearchString, SearchChar, 1) ' A textual comparison starting at position 4. Returns 6.
MyPos = Instr(1, SearchString, SearchChar, 0) ' A binary comparison starting at position 1. Returns 9.
MyPos = Instr(SearchString, SearchChar) ' Comparison is binary by default (last argument is omitted). Returns 9.
MyPos = Instr(1, SearchString, "W") ' A binary comparison starting at position 1. Returns 0 ("W" is not found).
Note The InStrB function is used with byte data contained in a string. Instead of returning the character position of the first occurrence of one string within another, InStrB returns the byte position.
Member: happyman
happyman Aug 30, 2007 at 12:17:42 (UTC)
Goto Top
gibt es in VB denn denn nicht eine Funktion
wie in VScript - InStr() ??

Bis heute kannte ich diese Funktion nicht.

Hier noch mal der komplette code:
Dim IP_PORT As String
Dim IP As String
Dim PORT As String

Open "c:\Liste.txt" For Input As #1            ' Datei öffnen.  
Do While Not EOF(1)                            ' Auf Dateiende abfragen.  
   Line Input #1, IP_PORT                      ' Zeile Einlesen. 

   pos = InStr(1, Dateidaten, ":", vbTextCompare)  
   strlength = Len(Dateidaten)
   Text1.Text = Left$(Dateidaten, (pos - 1))                           ' getrennte IP und PORT ausgeben.  
   Text2.Text = Right$(Dateidaten, (strlength - pos - 1))

Loop
Close #1 

Danke für die Hilfe

mfg happyman