[ notebookFun @ 30.04.2010. 12:08 ] @
Interesuje me da li postoji CHRTRANC() Fox Pro vec gotova funkcija u VB ??? EXAMPLE CHTRANC("elitesecurity.org",".e,y","1,2,3") dobijamo ovo 2lit2s2curit31org Da bez veze ne pisem funkciju ako vec postoji. |
[ notebookFun @ 30.04.2010. 12:08 ] @
[ vuchko.vuchko @ 30.04.2010. 12:52 ] @
Postoji!
Code: Replace(string,find,replacewith[,start[,count[,compare]]]) ako si to trebao... ![]() [ notebookFun @ 02.05.2010. 15:28 ] @
Ovo radi za mjenjanje samo po jedno slovo, a CHRTRANC mijenja sve zadate karaktere u nove karaktere!
Iskoristio sam funkciju Replace i pomocu nje napravio funkciju CHTRANC. [ vuchko.vuchko @ 02.05.2010. 20:04 ] @
Krivi navod...
Citat: ... Ovo radi za mjenjanje samo po jedno slovo... To ne odgovara istini jer ova funkcija moze da mijenja citave slogove pa cak i rijeci... evo npr. Code: Private Sub Command1_Click() Dim Txt1, Txt2 As String Txt1 = "Idem na pivo." Txt2 = Replace(Txt1, "pivo", "sokic") MsgBox Txt2 End Sub ![]() [ notebookFun @ 02.05.2010. 20:28 ] @
Aj uradi ovo sa sa replace funkcijom
CHTRANC("elitesecurity.org",".e,y","1,2,3") dobijamo ovo 2lit2s2curit31org Ali da ne koristis tri puta replace funkciju, i da ne koristis neku petlju.Zamisli da trebas da zamjenis 50 karaktera od jednom. Ja sam napravio CHTRANC funkciju tako sto sam ubacio REPLACE() u for petlju. [ vuchko.vuchko @ 02.05.2010. 21:13 ] @
![]() ![]() [ notebookFun @ 02.05.2010. 21:22 ] @
Ako bi radio pjeske, onda bih mogao da korisim IF sa MID unutar FOR ili WHILE(i<LEN(rijec)) pa bih mjenjao svaki karakter sa drugim :)
Morao bih svaki karakter odvojeno da poredim :) [ Marko_L @ 02.05.2010. 21:42 ] @
Rekao bih da se ovde malo mešaju pojmovi. Replace funkcija menja bilo koji niz u odabranom stringu u neki drugi niz. Niz može biti i slovo i reč i rečenica, tako da nema govora o menjanju slovo po slovo, niti ima potrebe za korišćenjem MID funkcije. Ako je potrebno odraditi višestruki Replace, mislim da ne postoji ugrađena u VB-u za tako nešto, ali ne bi trebalo da bude problem da se napravi funkcija. Eto i sam kažeš da si napravio funkciju koja to radi. Ne znam kako si to odradio, potšo nisi postovao rešenje, što bi bilo jako lepo od tebe, ali se nadam da nisi išao slovo po slovo. Evo kako bih ja to uradio.
Code: Private Function MultipleReplace(sText As String, sFindWhat As String, sReplaceWith As String, sDelimiter As String) As String Dim I As Long Dim sFindWhatArray() As String Dim sReplaceWithArray() As String sFindWhatArray = Split(sFindWhat, sDelimiter) sReplaceWithArray = Split(sReplaceWith, sDelimiter) For I = LBound(sFindWhatArray) To UBound(sFindWhatArray) sText = Replace(sText, sFindWhatArray(I), sReplaceWithArray(I)) Next I MultipleReplace = sText End Function A poziva se naravno ovako Code: Private Sub cmdTest_Click() MsgBox MultipleReplace("elitesecurity.org", ".,e,y", "1,2,3", ",") End Sub [ notebookFun @ 03.05.2010. 18:38 ] @
Evo ja sam na slican nacin uradio, samo sto kod mene izgleda malo prostije kod, sto se veoma cijeni :)
Code: Global RET As String Global i As Integer Public Function CHRTRANC(rijec As String, karakteri As String, zkarakteri As String) As String For i = 1 To Len(rijec) rijec = Replace(rijec, Mid(karakteri, i, 1), Mid(zkarakteri, i, 1)) i = i + 1 Next i RET = rijec 'Funkcija vraca RET, novi string sa zamjenjenim karakterima End Function Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|