Hogyan kell betölteni a memóriába egy szöveg fájlt unicode-ban?
Hogyan tölthető be a Memo szövegben a Unicode fájlból
Kedves profik, hogyan tölthetem be a Unicode szövegét egy fájlból a Memo-ba?
Ezt tettem:
var s, s1: String;
# xA0; # xA0; f: Szövegfájl;
kezdődik
# xA0; AssignFile (f, Fájlnév);
# xA0; Reset (f);
# xA0; míg az EoF (f) nem
# xA0; # xA0; kezdődik
# xA0; # xA0; ReadLn (f, s);
# xA0; # xA0; s1: = WideCharToString (PWideChar (k));
# xA0; # xA0; Memo1.Lines.Add (s1);
# xA0; végén;
végén;
Ennek eredményeképpen a szövegben szereplő karakterek helyett a "?"
Úgy gondolom, ez a WideCharToString (PWideChar (s)); úgy tűnik, hogy itt valami rosszat csinálok, vagy egyáltalán nem. Kérlek, kérlek!
A VCL nem támogatja a Unicode-t, használja a külső komponenseket, például a TNTComponenteket.
A Delphi támogatja a Unicode-t, csak ne használja a TextFile-t
Számomra a legfontosabb probléma a szöveg megjelenítésében és az e szövegből származó adatok fogadásakor. Például, ha ini fájlt készít, csak Unicode-ban és kézzel feldolgozza.
Úgy tűnt számomra, hogy először feldolgozom magam az ANSI kódolásával.
És mi egyszerű a fájlon keresztül?
Lehetséges, és ez egyszerű a Fájllal, de tanácsot adok a TFileStream-nek és rögzítem a WideString-ben előre meghatározott hosszúsággal, majd S: = WS
A ReadBuffer második paramétere (hosszúsága) nem sok a tiszta. Ha egyszerre szeretné elolvasni a teljes fájlt, adja meg a Méretet?
> a ReadBuffer második paramétere (hosszúsága) nem tisztázott.
> # xA0; Ha a teljes fájlt egyszerre szeretném elolvasni, adja meg a Méretet?
A puffer bájtban van, tehát igen.
ha olvasás közben hibát okoz.
var # xA0; st: TFileStream;
# xA0; # xA0; ws: PWideChar;
# xA0; # xA0; s: String;
kezdődik
# xA0; st: = TFileStream.Create (Fájlnév, fmOpenRead);
# xA0; st.ReadBuffer (ws, st.Size); // itt hibát okoz
# xA0; s: = WideCharToString (ws);
végén;
> # xA0; st.ReadBuffer (ws, st.Size); // itt hibát okoz
Szomorú, lányok, szomorúak.
De valójában legutóbb az AS-t említik. Puskin.
És mi a PWideChar.
akkor mi van, ha a PWideChar?
> Mi van akkor, ha a PWideChar?
[5]
Sértő a nagy költő számára.
Tudja, hogyan kell olvasni? WideString és állítsa be a méretet
még mindig hibát okoz!
Különben is, hol és milyen kóddal.
És ezt mondja a hiba?
És ki ad emléket, Puskin?
Nos. Meg fogok tanulni. ha van valami, visszafordulok!
Ui Megfontolandó információk.
Két hiba van [8]. Egy már többször szólalt meg. A második a ReadBuffer eljárás első paraméteréhez kapcsolódik.
Nos, az első hiba egyértelmű. figyelmetlen! és a második, ahogy mondták, a memória elosztása. Ezt tettem:
var # xA0; st: TFileStream;
# xA0; # xA0; # xA0; ws: WideString;
# xA0; # xA0; # xA0; s: String;
kezdődik
# xA0; st: = TFileStream.Create (Fájlnév, fmOpenRead);
# xA0; SetLength (ws, st.Size);
# xA0; st.ReadBuffer (PWideChar (ws) ^, st.Size);
# xA0; s: = ws;
# xA0; Memo1.Lines.Add (s);
végén;
elvben csak a kérdőjelek végén jelenik meg.