Ok, eli miten saisin tallennettua tietyn kohdan merkkijonosta vaikka muuttujaan?
Esimerkki voisi olla seuraavanlainen:
... (jotain sotkua) ... �X�asd_asd� ... (jotain sotkua) ...
X = Se mitä haetaan. Sisältää pelkkiä numeroita, enintään 8 merkkiä pitkä. Ennen äXää ja sen jälkeen tulee aina � (=Chr(1) ).
Myös sillä on väliä mitä numeroiden jälkeen tulee. ESIM. Jos �:n jälkeen seuraa asd_asd, numerosarja tallennetaan, jos qwe_rty niin ei tallenneta. Myös kirjaimia reunustaa samat merkit �.
Noh, jos oletetaan että X:n edessä ei koskaan ole kuin yksi Chr(1) niin laiska ihminen voisi tehdä sen seuraavasti (VB6)
Private Sub Main()
Dim sz As String, szPalat() As String
'Seuraava rivi on mallina
sz = "roskaa ja ryönää" & Chr(1) & "5" & Chr(1) & "asd_asd" & Chr(1) & "lisää roskaa"
'Tästä alkaa varsinainen vastaus
szPalat = Split(sz, Chr(1), 4, vbBinaryCompare)
If UBound(szPalat) < 3 Then
MsgBox "Teksti ei kelpaa - vähemmän kuin kolme Chr(1):stä"
ElseIf szPalat(2) = "asd_asd" Then
Tallenna szPalat(1)
End If
End Sub
Private Sub Tallenna(szTieto As String)
MsgBox "Olisi tallentanut " & szTieto
End SubMutta elegantimpi ratkaisu olisi seuraava (toimii myös jos alkuroskassa on monta Chr(1)
Private Sub Main()
Dim sz As String, szPalat() As String, L As Long
'Seuraava rivi on mallina
sz = "roskaa ja ryönää" & Chr(1) & "5" & Chr(1) & "asd_asd" & Chr(1) & "lisää roskaa"
'Tästä alkaa varsinainen vastaus
szPalat = Split(sz, Chr(1), 4, vbBinaryCompare)
For L = 1 To UBound(szPalat) - 1
If szPalat(L) = "asd_asd" And IsNumeric(szPalat(L - 1)) Then
Tallenna szPalat(1)
Exit For
End If
Next
End Sub
Private Sub Tallenna(szTieto As String)
MsgBox "Olisi tallentanut " & szTieto
End SubJos haluat tallentaa kaikki tekstissä esiintyvät etkä vain ensimmäistä niin poista "Exit For"
Hmm.. miten toi oikein toimii? Kokeilin tota alimmaista koodia eikä tapahtunu mitään (en käyttäny esimerkkitekstiä). Entä miten voin tallentaa useampia numerosarjoja kerralla?
Kai se ajaa tuon Main -funktion? Pistä vaikka breakline ekalle koodiriville ja katso että käy siellä.
Jos sulla ei ole mitään tekstiä niin silloin tietenkään siellä ei mitään tapahdukaan. Jälkimmäinen vaihtoehto ei anna ilmoitusta siitä jos sieltä ei löydy mitään ehdot täyttävää.
Ja tuo tallentaminen varmaan riippuu pitkälti siitä mihin ja miten olet tallentamassa.
Joo sain tän jutun nyt toimimaa. Kiitos Grezille avusta :)
Aihe on jo aika vanha, joten et voi enää vastata siihen.