Forum » Programiranje » VB6 Problem
VB6 Problem
ge ::
Zanima me če v VB6 obstaja kakšna funkcija-ukaz s katero bi se dalo ugotoviti če iskani niz npr. isci = AB12888 obstaja v textovni datoteki ki ima npr. naslednjo vsebino;
12345687
1288888
AB12000 - AB12999 (pri tem je mišljeno, da je to vrstica ki vsebuje vse vrednosti od-do, AB12888 je notri !)
TZ1234 - TZ 9999
1234C - 1299C
Kot rezultat bi se morala pokazati vrstica AB1200 - AB12999 saj se iskani niz nahaja v omenjeni vrstici.
Funkcija Instr ne pride v poštev ker gre za kombinacijo številke-črke pa še problem je v vrednostih ki so definirane od-do.
Komplicirano ?
Hvala za pomoč.
12345687
1288888
AB12000 - AB12999 (pri tem je mišljeno, da je to vrstica ki vsebuje vse vrednosti od-do, AB12888 je notri !)
TZ1234 - TZ 9999
1234C - 1299C
Kot rezultat bi se morala pokazati vrstica AB1200 - AB12999 saj se iskani niz nahaja v omenjeni vrstici.
Funkcija Instr ne pride v poštev ker gre za kombinacijo številke-črke pa še problem je v vrednostih ki so definirane od-do.
Komplicirano ?
Hvala za pomoč.
Ge
darkolord ::
iz napisanega sklepam, da so črke vedno iste torej se v "od-do" nizu spreminjajo samo številke... če je tako potem enostavno odstraniš številke ven iz stringa in nardiš preprost loop... tuki sm ti čist na hitr napisu neki sam tko da vidiš približn kako bi šlo tole... mal popravi da bo pogledalo še če so črke enake in to je to....
Private Sub Command1_Click()
Dim x As String, y As String, z() As String
x = "AB1234-AB1299" 'niz "od-do"
y = "AB1255" 'iskani niz
if instr(1,x,"-") then 'pogleda če je od-do al samo en niz
z = Split(x, "-")
For i = GetNumberOut(z(0)) To GetNumberOut(z(1))
If GetNumberOut(y) = i Then MsgBox "yupi."
Next i
else
if x=y then msgbox "yupi."
end if
End Sub
Public Function GetNumberOut(ByVal str As String) As Long
Dim strTmp
For i = 1 To Len(str)
If IsNumeric(Mid(str, i, 1)) Then strTmp = strTmp & Mid(str, i, 1)
Next i
GetNumberOut = CLng(strTmp)
End Function
Private Sub Command1_Click()
Dim x As String, y As String, z() As String
x = "AB1234-AB1299" 'niz "od-do"
y = "AB1255" 'iskani niz
if instr(1,x,"-") then 'pogleda če je od-do al samo en niz
z = Split(x, "-")
For i = GetNumberOut(z(0)) To GetNumberOut(z(1))
If GetNumberOut(y) = i Then MsgBox "yupi."
Next i
else
if x=y then msgbox "yupi."
end if
End Sub
Public Function GetNumberOut(ByVal str As String) As Long
Dim strTmp
For i = 1 To Len(str)
If IsNumeric(Mid(str, i, 1)) Then strTmp = strTmp & Mid(str, i, 1)
Next i
GetNumberOut = CLng(strTmp)
End Function
ge ::
Darkolord zahvaljujem se za kodo, kot si povedal v grobem je to to, problem so še vedno črke.
Dolžina iskalnega niza ni vedno enaka dolžini niza ki se nahajajo v datoteki, pa tudi črke niso vedno na
začetku ali koncu vrstice, so tudi na sredini.
npr.
1234CC - 9999CC
TZ12345 - TZ1299
90AB1234 - 90AB1999
Sam sem tudi spacal nekakšno kodo za razčlevanje številk iz nizov, bom pa uporabil tvojo kodo ker manj komplicirana.
Dolžina iskalnega niza ni vedno enaka dolžini niza ki se nahajajo v datoteki, pa tudi črke niso vedno na
začetku ali koncu vrstice, so tudi na sredini.
npr.
1234CC - 9999CC
TZ12345 - TZ1299
90AB1234 - 90AB1999
Sam sem tudi spacal nekakšno kodo za razčlevanje številk iz nizov, bom pa uporabil tvojo kodo ker manj komplicirana.
Ge
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Word macro: brisanje od določenega znaka naprejOddelek: Programiranje | 1268 (1142) | Simplon |
» | [C#] Prosim pomagajte! Potrebujem program, ki bi pobiral podatke iz ene straniOddelek: Programiranje | 2767 (2377) | David1994 |
» | [excel] makro | excel -pomocOddelek: Programiranje | 1982 (1766) | smetko |
» | kopiranje iz enega fajla v drug??Oddelek: Programiranje | 1238 (998) | Seth |
» | API+VBOddelek: Programiranje | 2123 (1827) | webblod |