|
| Autor |
Nachricht |
Oberxil Coder

Anmeldedatum: 14.06.2008 Beiträge: 87
|
Zahlen extrahiern
Verfasst am: 04.09.2008, 21:36 |
|
|
Ich hab nen Text zb: abc1234.5def Jetzt will ich dass 1234.5 ausgegeben wird Das Problem ist, dass 1234.5 nicht immer gleich lang ist genauso wenig wie abc und def |
|
| |
|
 |
ZiG Überflieger

Anmeldedatum: 16.04.2008 Beiträge: 421
|
Verfasst am: 04.09.2008, 21:42 |
|
|
For Schleife und Replace. Am besten noch mit InStrB vorher prüfen ob der Wert enthalten ist, denn das ist schneller als jedesmal Replace auszuführen.
Oder den String per Schleife durchgehen und von jedem Zeichen den Ascii Wert überprüfen und dementsprechend handeln. |
|
| |
|
 |
nicok Poster

Anmeldedatum: 15.05.2008 Beiträge: 161
|
|
| |
|
 |
Oberxil Coder

Anmeldedatum: 14.06.2008 Beiträge: 87
|
Verfasst am: 04.09.2008, 21:48 |
|
|
| Hätte vl noch erwähnen sollen dass abc, def und 1234.5 nicht immer gleich sind(1234.5 ist halt immer irgendeine Zahlenfolge^^). das einize was immer vorhanden ist, ist der "." |
|
| |
|
 |
ZiG Überflieger

Anmeldedatum: 16.04.2008 Beiträge: 421
|
Verfasst am: 04.09.2008, 22:10 |
|
|
Ich seh keinen Widerspruch zu meinem obrigen Post. War ja nicht die Rede davon dass du nach "abc" oder "def" suchen sollst. |
|
| |
|
 |
Oberxil Coder

Anmeldedatum: 14.06.2008 Beiträge: 87
|
Verfasst am: 04.09.2008, 22:21 |
|
|
| Aber wie soll ich was mit InStr , Replace und irgendwas prüfen wenn ich nicht weis nach was? |
|
| |
|
 |
ZiG Überflieger

Anmeldedatum: 16.04.2008 Beiträge: 421
|
Verfasst am: 04.09.2008, 22:23 |
|
|
Mein Grundgedanke wäre da halt alles zu entfernen was nicht numeric ist. Den Punkt muß man halt noch beachten. |
|
| |
|
 |
Oberxil Coder

Anmeldedatum: 14.06.2008 Beiträge: 87
|
Verfasst am: 04.09.2008, 23:16 |
|
|
| Ich hab grad irgendwie kp wie ich das machen soll^^ |
|
| |
|
 |
Analegrande Tutorial Leser

Anmeldedatum: 01.05.2008 Beiträge: 69
|
Verfasst am: 05.09.2008, 05:45 |
|
|
ZiG vorschlag war glaube ich mit der Replace funktion alle buchstaben aus dem Text mit "nichts" zu ersetzen ( "" ).
Hier was zur Replace-Funktion: http://www.vbarchiv.net/commands/Replace.php
Das machst du halt mit allen Buchstaben und hast dann nur noch die Zahlen.
Gruss Anale |
|
| |
|
 |
sollniss Überflieger

Anmeldedatum: 01.05.2008 Beiträge: 699
|
Verfasst am: 05.09.2008, 10:20 |
|
|
Etwas selber nachdenke hat noch niemandem geschadet:
Visual Basic: [code]for i = 0 to len(string) -1 if substr(string, i, 1) isnumeric = false or substr(string, i, 1) <> "." then string = substring(string, 1) end if next[/code]
So ungefär müsste das gehen. |
|
| |
|
 |
Oberxil Coder

Anmeldedatum: 14.06.2008 Beiträge: 87
|
Verfasst am: 05.09.2008, 13:30 |
|
|
Deiner ging leider nicht, also hab ich ihn ein bischen umgeändert
Visual Basic: [code]For i = 0 To Len(Text1.Text) - 1 If IsNumeric(Mid(Text1.Text, i, 1)) = False Or Mid(Text1.Text, i, 1) <> "." Then Text1.Text = Mid(Text1.Text, 1) End If Next i [/code]
Geht aber immer noch nicht^^ |
|
| |
|
 |
sollniss Überflieger

Anmeldedatum: 01.05.2008 Beiträge: 699
|
Verfasst am: 05.09.2008, 14:35 |
|
|
Bei mir war text na Variable
Visual Basic: [code] Dim sText as String Dim sZahlen as String 'Ja, String ^^ sText = Text1.Text For i = 0 To Len(sText) - 1 If IsNumeric(Mid(sText, i, 1)) = True Or Mid(sText, i, 1) = "." Then ' Sry das war mein Fehler sZahlen &= Mid(sText.Text, i, 1) End If Next i[/code] |
|
| |
|
 |
Oberxil Coder

Anmeldedatum: 14.06.2008 Beiträge: 87
|
Verfasst am: 05.09.2008, 15:51 |
|
|
Visual Basic: [code]If IsNumeric(Mid(sText, i, 1)) = True Or Mid(sText, i, 1) = "." Then ' Sry das war mein Fehler[/code]
da kommt immer "ungültiger Prozeduraufruf oder ungültiges Argument" |
|
| |
|
 |
ZiG Überflieger

Anmeldedatum: 16.04.2008 Beiträge: 421
|
Verfasst am: 05.09.2008, 16:57 |
|
|
Visual Basic: [code] Dim sText As String Dim sZahlen As String Dim sChar As String
sText = "abc1234.56def"
For i = 1 To Len(sText) sChar = Mid$(sText, i, 1) If IsNumeric(sChar) Or Asc(sChar) = 46 Then sZahlen = sZahlen & sChar End If Next i
MsgBox sZahlen [/code]
Mit einer Select Case Überprüfung des Ascii Wertes ginge es evt. noch schneller, wird bei deinem Fall aber denke ich sowieso nicht nötig sein. |
|
| |
|
 |
bla Coder

Anmeldedatum: 02.05.2008 Beiträge: 267
|
Verfasst am: 05.09.2008, 17:09 |
|
|
hier als c&p-vb6-funktion:
Visual Basic: [code]Private Function ZahlenAuslesen(DerText As String, Optional Punkt As Boolean = True) As String Dim i As Integer
For i = 1 To Len(DerText)
If IsNumeric(Mid(DerText, i, 1)) = True Then ZahlenAuslesen = ZahlenAuslesen & Mid(DerText, i, 1) End If If Punkt = True Then If Mid(DerText, i, 1) = "." Then ZahlenAuslesen = ZahlenAuslesen & "." End If End If Next i
End Function[/code]
/oh, hab die zweite seite garnicht gesehen  |
|
| |
|
 |
elek´tronik Tutorial Leser

Anmeldedatum: 25.07.2008 Beiträge: 56
|
Verfasst am: 05.09.2008, 17:47 |
|
|
| Sollte das ganze nicht auch mit Val(Text) gehen?? |
|
| |
|
 |
bla Coder

Anmeldedatum: 02.05.2008 Beiträge: 267
|
Verfasst am: 05.09.2008, 18:46 |
|
|
denk schon...
allerdings nicht, wenn zB.: "12.34adsad12.78" angegeben ist^^ naja egal |
|
| |
|
 |
ZiG Überflieger

Anmeldedatum: 16.04.2008 Beiträge: 421
|
Verfasst am: 05.09.2008, 22:02 |
|
|
Val gibt nur Zahlen zurück die am Anfang stehen. Wenn die Zahl so wie in diesem Fall in der Mitte steht, wird 0 zurück gegeben. |
|
| |
|
 |