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 Sub
Mutta 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 Sub
Jos 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.