Šta je novo?

YUSCII i VB6

kUdtiHaEX

Super ridža
Administrator
Učlanjen(a)
18.07.2001
Poruke
18,077
Poena
1,365
Moja oprema  
CPU & Cooler
Intel® Core™ i5-9500F, NZXT Kraken Z63
GPU
Asus GTX 2070 Super
Storage
Samsung 980 Pro NVMe 1 TB
Kućište
NZXT H210i
Monitor
LG C2 42"
Miš & tastatura
Logitech G502, Keychron K8, Nuphy Air75, Ducky TKL One 2
Ostale periferije
Glupi HP štampač
Laptop
Apple Macbook Pro 14" M1
Tablet
Apple iPad Pro 11"
Mobilni telefon
Apple iPhone 13 Pro Max
Pametni uređaji
Apple Watch Ultra
Pristup internetu
  1. Kablovski internet
Dobio sam jednu praistorijsku aplikaciju pisanu u VB6 koja koristi Access bazu. Sve bi to bilo lepo da kompletan sadrzaj baze nije u YUSCII-u.
Da to su oni [, ], @ i ^ karakteri koji simuliraju nasa slova.

Elem, ja sam uspeo da iskonvertujem sadrzaj baze u UTF8 i sama aplikacija, kada se za polja setuju UTF8 fontovi, prikazuje sve korektno. Medjutim, problem nastaje onog momenta kada pokusam da pretrazujem po bazi putem aplikacije.
Ako trazim Š, recimo Šimić necu dobiti nista :) ali ako trazim [imi} dobijem odgovoarajuci rezultat.

Proslo je poprilicno vremena otkako sam zadnji put napisao nesto u VB6 pa mi treba mala pomoc.
Postoji jedno polje koje se zove srchWhat u koje se upisuje to sto se trazi i dugme PRETRAZI i to je to. Gledao sam kod ali nisam nasao nista sto bi bilo povezano sa ovim.

Hilfe!
 
Evo reseeeenja

Prvo trebas sve kvakice iz Access baze da konvertujes u nasa slova. Posto znas koja kvakica odgovara fontu koji koristis, jednostavno napravis malu petlju tipa:
:type:

' prvo postavis referencu na ADO recordset biblioteku jer ovo nece da ti radi

Set rs = New ADODB.Recordset
rs.CursorType = adOpenKeyset
rs.LockType = adLockOptimistic
rs.ActiveConnection = cn 'cn - je konekcioni string za tu bazu, iskopiraj sa properties-a bilo kojeg ADO objekta na formama
rs.Open "SELECT * FROM imetabele", cn, , , adCmdText
DIM tekstx as string
With rs
Do While not .EOF
tekstx = ! ime_polja_iz_tabele

'ovde ides pretrazivanje po stringu i zamena kvakica sa nasim slovima
' imas vise metoda (vidi help - rad sa stringovima)

! ime_polja_iz_tabele = tekstx

' ako menjas tekst u vise polja onda sve ovo ponovi sa drugim poljem
' posto ovde nije bitna racionalizacija koda to nemas potrebu da pises funkciju
' tj. jednostavno idi copy-paste i to je to

.Update
.Move Next
Loop
End With
rs.Close
Set rs = Nothing

Posle unosa ovog koda u novi projekat, izvrsi ga probno i probaj pretrazivanje. Svakako, pre toga kopiraj bazu podataka ako se nesto zabrlja :crash:
 
I ja sam imao sličan problem i napravio sam sledeće dve funkcije:

************************




Function fnParseSlovo(Tekst As String, StaroSlovo As String, NovoSlovo As String) As String

Dim n As Integer
Dim Duzina As Integer

Duzina = Len(Tekst)

For n = 1 To Duzina
If Mid(Tekst, n, 1) = StaroSlovo Then Tekst = Left(Tekst, n - 1) & NovoSlovo & Right(Tekst, Duzina - n)
Next n

fnParseSlovo = Tekst

End Function


Function fnConvertYUSCII(Tekst As String) As String

Tekst = fnParseSlovo(Tekst, "^", "Č")
Tekst = fnParseSlovo(Tekst, "~", "č")
Tekst = fnParseSlovo(Tekst, "]", "Ć")
Tekst = fnParseSlovo(Tekst, "}", "ć")
Tekst = fnParseSlovo(Tekst, "\", "Ð")
Tekst = fnParseSlovo(Tekst, "|", "đ")
Tekst = fnParseSlovo(Tekst, "[", "Š")
Tekst = fnParseSlovo(Tekst, "{", "š")
Tekst = fnParseSlovo(Tekst, "@", "Ž")
Tekst = fnParseSlovo(Tekst, "`", "ž")

fnConvertYUSCII = Tekst

End Function



************************



Možeš ih koristiti iz update query-a ili iz VBA.
 
Resio sam problem ali na drugaciji nacin - napisao sam aplikaciju iz pocetka (sto je zahtevalo da obrisem 20 kg prasine sa knjige o VB6 :D).
Hvala na pomoci :)
 
Pa ponekad je lakse napisati sve od nule nego kopati po tudjem nakaradno napisanom kodu :) a pogotovo je to lakse u ovom slucaju jer je u pitanju jednostavna aplikacija (sledece verzije cu da pisem u JAVI, ovaj VB6 mi ide na nerve).
 
Nazad
Vrh Dno