Delphi - ANSI - UNICODE
Prikazujem rezultate 1 do 10 od 10

Tema: Delphi - ANSI - UNICODE

  1. #1
    Početnik
    Učlanjen
    10.04.2004.
    Poruke
    24
    Reputaciona moć
    0

    Podrazumevano Delphi - ANSI - UNICODE

    Zanima me da li neko od ljudi koji posecuju ovaj Forum, moze da mi pomogne oko sledeceg.
    Da li Vam je poznato kako u Delphi-ju mogu da prebacim snimanje nekog File-a iz (podrazumevanog) ANSI u UNICODE? Tj. program kreira neki .txt file, a zatim ga snima. Zanima me kako mogu da podrazumevani encoding ANSI prebacim u UNICODE. Ideja je da se isti snima direktno, a ne klikom na Save As.
    Hvala.



  2. #2
    st0rmbringer
    Guest

    Podrazumevano

    kako mislis automatski?
    automatski bi bilo da sadrzaj memo-a ili slicnog sacuvas direktno, a pesacki sa Rewrite i slicno. Pogledaj na delphi3000.com i torry.net, siguran sam da ima tamo nesto za to.

  3. #3
    Početnik
    Učlanjen
    10.04.2004.
    Poruke
    24
    Reputaciona moć
    0

    Podrazumevano Problem je sam File

    Pazi, nije problem da ja to prebacim u neki File.... to je OK. Problem nastaje kada se File snimi. Recimo, iz neke baze (SQL) povukao sam podatke, te podatke prebacio u neki Memo (nije komponenta) ili bilo sta drugo, odakle sam napunio neki .txt Problem je u tome sto u zavrsnoj liniji koda stavljam SaveFile... e kada mu to zadam on ga snimi u ANSI formatu.

  4. #4
    Primećen član
    Učlanjen
    15.02.2004.
    Lokacija
    Nis-New York
    Poruke
    572
    Reputaciona moć
    56

    Podrazumevano

    u delphiju su (kolko ja znam) stringovi ansi, a ne unicode, sto znaci da je i memo takav - za karakter se odvaja 8 bitova a ne 16 sto ne omogucava unicode text. stvarno ne znam kako da ti pomognem, i ja sam jednom imao takvih problema...zar nema nista na onim sajtovima?

  5. #5
    Početnik
    Učlanjen
    10.04.2004.
    Poruke
    24
    Reputaciona moć
    0

    Podrazumevano UNICODE

    Hvala. Ima dosta dobrih stvari na onim sajtovima. Pronadjoh i nesto sto sam davno zaboravio da mi je trebalo.

  6. #6
    masta
    Guest

    Podrazumevano Pogle

    Citat Original postavio st0rmbringer
    kako mislis automatski?
    automatski bi bilo da sadrzaj memo-a ili slicnog sacuvas direktno, a pesacki sa Rewrite i slicno. Pogledaj na delphi3000.com i torry.net, siguran sam da ima tamo nesto za to.

  7. #7
    Početnik
    Učlanjen
    10.04.2004.
    Poruke
    24
    Reputaciona moć
    0

    Podrazumevano Re: Pogle

    Pronasao sam.

    To store all text displaying into the program code, it is necessary to convert other than ANSI character to their special code page, because you cannot place Unicode writing in program code. In DELPHI3000 is a good article describing how to do that (the article 3198 is from Daniel Wischnewski, “Converting Text for different Code Pages”). Place anywhere in your program a Button and turn him to NOT VISIBLE. This button is only for you. Behind the Button is the call:

    procedure TForm1.Button1Click(Sender: TObject);
    var
    InList:WideString;
    OutList:TStringList;
    F: File of WideChar;
    s:WideChar;
    begin
    //This part is only for developing to translate Chinese text to
    //code page. The Button is normaly unvisible !!!!!
    //working only until 2 GB Files (because of WideString Max)!!!
    OutList:=TStringList.Create;
    InList:='';
    AssignFile(F,'Program Translation.txt');
    Reset(F);
    Read(F,S); //we do not need the unicode file mark
    while not EOF(F) do begin
    Read(F,S);
    InList:=InList+s;
    end;
    CloseFile(F);
    OutList.Text:=TransferUnicodeToCodePage(CODEPAGE_C hinese_PRC,InList);
    OutList.SaveToFile('Program Translation CodePage.txt');
    OutList.Free;
    end;

  8. #8
    Primećen član
    Učlanjen
    15.02.2004.
    Lokacija
    Nis-New York
    Poruke
    572
    Reputaciona moć
    56

    Podrazumevano

    cool, naso sam i ja neke procedure za konvertovanje unicode u ansi i obrnuto, gde ti dajes broj kodnog rasporeda (mozes videti koji je kodni raspored koji broj u control panel-u)
    pozdravi

  9. #9
    Početnik
    Učlanjen
    10.04.2004.
    Poruke
    24
    Reputaciona moć
    0

    Podrazumevano

    E, bilo bi super da mi posaljes i to tvoje resenje... bas me zanima da li bih mogao da uradim to jaos na neki drugi nacin osim onog koji sam poslao (doduse ne u celini). Ako te zanima kompletno resenje, reci mi pa cu ti ostaviti na forumu.
    Pozdrav.

  10. #10
    Primećen član
    Učlanjen
    15.02.2004.
    Lokacija
    Nis-New York
    Poruke
    572
    Reputaciona moć
    56

    Podrazumevano

    function WideStringToString(const ws: WideString; codePage: Word): AnsiString;
    var
    l: integer;
    begin
    if ws = ' then
    Result := '
    else
    begin
    l := WideCharToMultiByte(codePage,
    WC_COMPOSITECHECK or WC_DISCARDNS or WC_SEPCHARS or WC_DEFAULTCHAR,
    @ws[1], - 1, nil, 0, nil, nil);
    SetLength(Result, l - 1);
    if l > 1 then
    WideCharToMultiByte(codePage,
    WC_COMPOSITECHECK or WC_DISCARDNS or WC_SEPCHARS or WC_DEFAULTCHAR,
    @ws[1], - 1, @Result[1], l - 1, nil, nil);
    end;
    end; { WideStringToString }

    function StringToWideString(const s: AnsiString; codePage: Word): WideString;
    var
    l: integer;
    begin
    if s = ' then
    Result := '
    else
    begin
    l := MultiByteToWideChar(codePage, MB_PRECOMPOSED, PChar(@s[1]), - 1, nil, 0);
    SetLength(Result, l - 1);
    if l > 1 then
    MultiByteToWideChar(CodePage, MB_PRECOMPOSED, PChar(@s[1]),
    - 1, PWideChar(@Result[1]), l - 1);
    end;
    end; { StringToWideString }

Slične teme

  1. Notepad - problem oko formata ANSI i Unicode
    Autor Dakyorlando u forumu Softver
    Odgovora: 7
    Poslednja poruka: 12.07.2008., 23:27
  2. Knjige za ANSI C
    Autor u forumu Programiranje
    Odgovora: 3
    Poslednja poruka: 26.01.2004., 11:10

Pravila za slanje poruka

  • Ne možete kreirati novu temu
  • Ne možete poslati odgovor
  • Ne možete dodati priloge
  • Ne možete prepraviti svoju poruku
  •