Dezvolt o aplicatie pentru iphone si in baza de date sqlite am pus continut text cu caractere cu sedila,si surpriza a fost ca atunci cand cautam sa implementez functia de search,nu imi gasea caracterele cu ș si ț cu sedila .
M-am documentat si am ajuns la concluzia ca trebuie sa convertesc textul .
Intrebarea e : exista vreun program,chiar si pe windows care are aceasta facilitate sa converteasca caracterele cu sedila in caractere cu virgula ?
Tastatura pe iphone ca si cea pe mac suporta caracterele cu virgula,deci cele corecte pentru limba romana.
Bine ca nu am construit toata baza de date,ci numai un pic pentru proba.
convertire caractere in mac
Sa incerc sa vad daca o sa pot face asa,pentru asta trebuie sa instalez windowsul.
Acum incerc pe microsoft office de mac si am reusit sa schimb doar o litera,eu as vrea sa gasesc daca are pentru tot textul.
Trebuie sa aibe aceasta facilitate,cumva se razbuna word-ul pe mine
),ca nu mi-a placut niciodata sa lucrez cu text.
Multumesc .
Acum incerc pe microsoft office de mac si am reusit sa schimb doar o litera,eu as vrea sa gasesc daca are pentru tot textul.
Trebuie sa aibe aceasta facilitate,cumva se razbuna word-ul pe mine
![Smile :)](./images/smilies/icon_smile.gif)
Multumesc .
Atunci am o veste bună: în Microsoft Word (din MS Office pentru Windows) poți schimba "dintr-o lovitură" toate caracterele pe care le dorești (adică să dai o singură comandă și să se execute toate substituțiile pe care le dorești), dar pentru asta trebuie să folosești o macrocomandă.
S-a mai discutat asta aici.
S-a mai discutat asta aici.
Stii ce am realizat?Ca MS Office pentru Macintosh are macrocomanda asta inclusa , merge cu "replace all" analizeaza tot textul si schimba caracterul cu pricina cu unul pe care il vreau eu.
Sper sa nu imi dea emotii,vad ca ii dau de exemplu sa schimbe in text caracterul ,schimba si pe cele mari si pe cele mici,din aceeasi comanda unica,in text le lasa cum sunt ele mari sau mici.
Sa nu am probleme ca aceeasi litera din aceeasi familie,are coduri diferite pentru mare sau mica.
Sper sa nu imi dea emotii,vad ca ii dau de exemplu sa schimbe in text caracterul ,schimba si pe cele mari si pe cele mici,din aceeasi comanda unica,in text le lasa cum sunt ele mari sau mici.
Sa nu am probleme ca aceeasi litera din aceeasi familie,are coduri diferite pentru mare sau mica.
Și Office pentru Windows are comanda Replace all, care analizează tot textul, nu despre asta era vorba.
Ideea era de a defini o macrocomandă care să facă "dintr-o singură trecere" toate substituțiile.
Să zicem că macrocomanda se numește "înlocuire caractere cu sedilă", și are asociat un buton. La apăsarea pe acel buton, se vor face dintr-o dată, în tot textul, toate substituțiile, adică:
Am dat un exemplu de o asemenea macrocomandă în mesajul anterior.
Ideea era de a defini o macrocomandă care să facă "dintr-o singură trecere" toate substituțiile.
Să zicem că macrocomanda se numește "înlocuire caractere cu sedilă", și are asociat un buton. La apăsarea pe acel buton, se vor face dintr-o dată, în tot textul, toate substituțiile, adică:
- ş->ș
ţ->ț
Ş->Ș
Ţ->Ț
etc...
Am dat un exemplu de o asemenea macrocomandă în mesajul anterior.
Exact ce spuneam aia se intampla:
wordul le face ,schimba si mare si mic dintr-o comanda si la cautare in baza de date ,e case sensitive,gaseste numai mare sau numai mic ....pffff. Fonturile romanesti sunt praf,prost implementate sau deloc.
Engine-ul de sqlite are implementat unicode UTF-8,dar nu stiu ce sa mai zic.
Da ai dreptate.
Si daca pui macrocomanda ,le schimba mari cu mari si mici cu mici,nu?
nu ca wordul care le ia la gramada,pun sa schimbe una mica si le schimba si pe cele mari
Multumesc.
wordul le face ,schimba si mare si mic dintr-o comanda si la cautare in baza de date ,e case sensitive,gaseste numai mare sau numai mic ....pffff. Fonturile romanesti sunt praf,prost implementate sau deloc.
Engine-ul de sqlite are implementat unicode UTF-8,dar nu stiu ce sa mai zic.
Da ai dreptate.
Si daca pui macrocomanda ,le schimba mari cu mari si mici cu mici,nu?
nu ca wordul care le ia la gramada,pun sa schimbe una mica si le schimba si pe cele mari
Multumesc.
Asta se întîmplă dacă nu ai opțiunea respectivă bifată (în Word: Găsire și înlocuire->Înlocuire->Potrivire litere mari și mici)cebel a scris:wordul le face ,schimba si mare si mic dintr-o comanda
[...] wordul care le ia la gramada,pun sa schimbe una mica si le schimba si pe cele mari
Normal, pentru că au coduri diferite:cebel a scris:Si daca pui macrocomanda ,le schimba mari cu mari si mici cu mici,nu?
Ş - U+015E
ş - U+015F
Ţ - U+0162
ţ - U+0163
Ș - U+0218
ș - U+0219
Ț - U+021A
ț - U+021B
Dacă o să citești mai atent codul macrocomenzii pe care am pus-o mai sus, o să-ți dai seama - se vede clar care sînt instrucțiunile.
Ideea cu macrocomanda era următoarea (nu știu dacă s-a înțeles): spre deosebire de "Căutare și înlocuire" (unde trebuie să îi dai pe rînd, caracter cu caracter, caracterele pe care vrei să le înlocuiești (Ş, ş, Ţ, ţ) și se fac mai multe treceri prin document), cînd folosești macrocomanda apeși o singură dată butonul asociat și se fac toate înlocuirile (face toată treba "dintr-o dată"). Practic se întîmplă același lucru, dar pentru utilizator e mai comod de folosit (deschizi documentul, apeși butonul și... gata!).
Am instalat macrocomanda si pe microsoft office de mac si merge.
Vreau sa stiu exact ce inlocuieste ea cum e scrisa acum,pentru ca am text mult si nu am timp sa corectez,si pentru asta as avea nevoie de o idee.
De fapt ChrW(...),ce e?Banuiesc ca e o functie care intoarce un caracter in functie de codul sau ,si atunci ar trebui sa caut undeva pe net unde pune echivalenta.
Vreau sa fac ca macrocomanda sa transforme doar ĂÂÎŞŢ/ ăâîşţ cu ĂÂÎȘȚ/ăâîșț.
Desi ĂÂÎ/ăâî par ca sunt aceleasi in cele doua grupuri,totusi nu mi le gaseste la cautare.
E incantatoare macrocomanda,daca reusesc sa o pun la punct ma va scuti de ore intregi de munca,avind spre 40 de fisiere mari si ca sa dau la fiecare cate 10 comenzi ,as imbatrani.
Multumesc .
Vreau sa stiu exact ce inlocuieste ea cum e scrisa acum,pentru ca am text mult si nu am timp sa corectez,si pentru asta as avea nevoie de o idee.
De fapt ChrW(...),ce e?Banuiesc ca e o functie care intoarce un caracter in functie de codul sau ,si atunci ar trebui sa caut undeva pe net unde pune echivalenta.
Vreau sa fac ca macrocomanda sa transforme doar ĂÂÎŞŢ/ ăâîşţ cu ĂÂÎȘȚ/ăâîșț.
Desi ĂÂÎ/ăâî par ca sunt aceleasi in cele doua grupuri,totusi nu mi le gaseste la cautare.
E incantatoare macrocomanda,daca reusesc sa o pun la punct ma va scuti de ore intregi de munca,avind spre 40 de fisiere mari si ca sa dau la fiecare cate 10 comenzi ,as imbatrani.
Multumesc .
Mă mir că mai merge, e scrisă acum zece ani, probabil pe un Word 97!... Era doar un exemplu, cam cum ar trebui făcută.
Așa cum era scrisă atunci, înlocuia caracterele românești mapate aiurea în fonturi gen Times, TimesRomanSF etc. (în care caracterele românești erau puse pe alte coduri decît trebuia, și decît erau în fonturile Times New Roman, Arial etc. - "oficiale"). Dar, atenție, le înlocuia cu caracterele romînești cu sedilă, nu cu virgulă dedesubt, care nici nu existau atunci.
Practic, înlocuirile pe care le făcea erau următoarele:
Ã->Ă
ª->Ş
Þ->Ţ
ã->ă
º->ş
þ->ţ
Caracterele ciudate din stînga ar fi apărut bine pe fonturile alea care nu se mai folosesc (Times, etc.), dar pe Times New Roman apăreau aiurea, de aia trebuia făcută substituția.
Deci ție nu îți este de folos cu codurile alea, trebuie să le modifici (cu cele date de mine în mesajul anterior - doar să transformi din Hex în Dec, pentru că argumentul funcției Chr trebuie să fie Dec).
Descrierea funcției Chr() o găsești în Help-ul Wordului (mai exact Help-ul pentru Microsoft Visual Basic for Word):
Înlocuirea propriu-zisă este realizată de secvențele de forma:
După cum se vede, modificările sînt operate asupra textului selectat în prealabil, deci va trebui să selectezi tot textul (dai un Ctrl+A) înainte de a apela macrocomanda (sau selectezi numai textul în care vrei să caute).
Pentru Ă, ă, Î, î, Â, â nu ai nevoie de înlocuire, trebuie să înlocuiești doar Ș, ș, Ț, ț cu sedilă cu cele cu virgulă.
Așa cum era scrisă atunci, înlocuia caracterele românești mapate aiurea în fonturi gen Times, TimesRomanSF etc. (în care caracterele românești erau puse pe alte coduri decît trebuia, și decît erau în fonturile Times New Roman, Arial etc. - "oficiale"). Dar, atenție, le înlocuia cu caracterele romînești cu sedilă, nu cu virgulă dedesubt, care nici nu existau atunci.
Practic, înlocuirile pe care le făcea erau următoarele:
Ã->Ă
ª->Ş
Þ->Ţ
ã->ă
º->ş
þ->ţ
Caracterele ciudate din stînga ar fi apărut bine pe fonturile alea care nu se mai folosesc (Times, etc.), dar pe Times New Roman apăreau aiurea, de aia trebuia făcută substituția.
Deci ție nu îți este de folos cu codurile alea, trebuie să le modifici (cu cele date de mine în mesajul anterior - doar să transformi din Hex în Dec, pentru că argumentul funcției Chr trebuie să fie Dec).
Descrierea funcției Chr() o găsești în Help-ul Wordului (mai exact Help-ul pentru Microsoft Visual Basic for Word):
Atenție la folosirea funcției ChrW() pe Mac (vezi ultimul paragraf din citatul de mai sus). Bine, citatul e din Help-ul unui Word 2002, nu am altul la îndemînă acum, s-ar putea ca între timp să se mai fi schimbat lucrurile, vezi ce zice.Chr Function
Returns a String containing the character associated with the specified character code.
Syntax
Chr(charcode)
The required charcode argument is a Long that identifies a character.
Remarks
Numbers from 0 – 31 are the same as standard, nonprintable ASCII codes. For example, Chr(10) returns a linefeed character. The normal range for charcode is 0 – 255. However, on DBCS systems, the actual range for charcode is -32768 to 65535.
Note The ChrB function is used with byte data contained in a String. Instead of returning a character, which may be one or two bytes, ChrB always returns a single byte. The ChrW function returns a String containing the Unicode character except on platforms where Unicode is not supported, in which case, the behavior is identical to the Chr function.
Note Visual Basic for the Macintosh does not support Unicode strings. Therefore, ChrW(n) cannot return all Unicode characters for n values in the range of 128 – 65,535, as it does in the Windows environment. Instead, ChrW(n) attempts a "best guess" for Unicode values n greater than 127. Therefore, you should not use ChrW in the Macintosh environment.
Înlocuirea propriu-zisă este realizată de secvențele de forma:
Cod: Selectați tot
With Selection.Find
.Text = ChrW(xxx)
.Replacement.Text = ChrW(yyy)
End With
Pentru Ă, ă, Î, î, Â, â nu ai nevoie de înlocuire, trebuie să înlocuiești doar Ș, ș, Ț, ț cu sedilă cu cele cu virgulă.
- secarica
- admin secarica.ro
- Mesaje: 256
- Membru din: 06 Mai 2003 03:00
- Localitate: București, Pământ
- Contact:
O soluție mai liberă decât a folosi MS Office pentru așa ceva este utilizarea componentei Writer de la suita LibreOffice, la care se adaugă extensia asta.
LibreOffice există și pentru Mac, deci asta nu ar fi o problemă. Nu știu cum funcționează instalarea extensiilor pe Mac, pe Windows deschid LO și arunc extensia peste program, restul face el (cu confirmare din partea mea).
Avantajul cu LibreOffice este și posibilitatea de a avea un dicționar bun (disponibil de aici), fără costuri și fără piraterii.
Apple are suport corect pentru limba română de ani buni. Mai degrabă problema apare invers, la nivel de font, dacă dintr-un motiv oarecare este nevoie să vezi pe Mac un fișier scris incorect (cu ş și ţ cu sedilă). De exemplu cred că fontul Verdana există și pe Mac și presupun că are de amândouă.
Cristi
LibreOffice există și pentru Mac, deci asta nu ar fi o problemă. Nu știu cum funcționează instalarea extensiilor pe Mac, pe Windows deschid LO și arunc extensia peste program, restul face el (cu confirmare din partea mea).
Avantajul cu LibreOffice este și posibilitatea de a avea un dicționar bun (disponibil de aici), fără costuri și fără piraterii.
Apple are suport corect pentru limba română de ani buni. Mai degrabă problema apare invers, la nivel de font, dacă dintr-un motiv oarecare este nevoie să vezi pe Mac un fișier scris incorect (cu ş și ţ cu sedilă). De exemplu cred că fontul Verdana există și pe Mac și presupun că are de amândouă.
Cristi
... cea mai bună armă este adevărul – cu condiția să știi să-l folosești