Lazarus 3.0 (2023.12.21.)
Letöltés

  • Oldal:
  • 1

TÉMA:

Válasz:GetEnvironmentVariable Windows XP Home-on 2010 máj. 20 19:54 #515

  • KPD
  • KPD profilkép
  • Új tag
  • Új tag
  • Hozzászólások: 2
  • Köszönetek: 0
Köszönöm szépen!

Válasz:GetEnvironmentVariable Windows XP Home-on 2010 máj. 20 17:37 #514

  • Gábor
  • Gábor profilkép
  • Adminisztrátor
  • Adminisztrátor
  • Hozzászólások: 504
  • Köszönetek: 86
Az lconvencoding.pas unit , ami az LCL része, tartalmazza a következő eljárásokat a kelet európai karakterek oda-vissza kódolásához:

function ISO_8859_2ToUTF8(const s: string): string;
function UTF8ToISO_8859_2(const s: string): string;
Hogyan kérdezzünk okosan? / Mit kell tennünk kérdezés előtt? -- Lazarus 3.0 -- FPC 3.2-- GNU/Linux 5.15.0 x86_64

Válasz:GetEnvironmentVariable Windows XP Home-on 2010 máj. 20 11:53 #513

  • KPD
  • KPD profilkép
  • Új tag
  • Új tag
  • Hozzászólások: 2
  • Köszönetek: 0
Sziasztok!

Nekem is hasonló problémám lenne, azzal a változattal, hogy én mp3 zenéket másolok(nék) az mp3 lejátszóra, a probléma ott kezdődik az ékezetes zenéket nem másolja át, ja és az nekem Windows Vista Home Basic-em van.
Próbálkoztam ékezettelenítéssel de az nem sikerült.
Ezekkel is próbálkoztam, de a másolás itt is elmaradt:[url] wiki.lazarus.freepascal.org/LCL_Unicode_Support[/url].

Az olvastam valahol, hogy felejtsük el Lazarus-nál az ékezetes fájlneveket. A problémára tényleg ez a megoldás?

Már sok fórumot átolvastam, és kipróbáltam az ott leírt dolgokat, de semmi nem jött össze.

Előre is köszönöm! Sziasztok.

Válasz:GetEnvironmentVariable Windows XP Home-on 2009 aug. 08 16:52 #367

  • ejbenjaro
  • ejbenjaro profilkép Témaindító
  • Haladó forumozó
  • Haladó forumozó
  • Hozzászólások: 66
  • Köszönetek: 4
Szia!
Tegnap leszedtem a legfrissebb 0.9.27-es snapshotot, de az is hozza a hibát. Ráadásul a GetAppConfigDir pedig roppant viccesen létrehoz egy olyan könyvtárat amiben az ékezetes karakterek hibásan szerepelnek. Szóval szerintem az sem igazán helyesen működik. Annak nem kellene létrehoznia könyvtárat. Megtennéd, hogy bejelented a hibát? Sajnos az én angol tudásom még nem elég erős ehhez.
Köszi az eddigi segítséget.
Üdv
Peti.
Mottó:
"Az ember sokszor más mint aminek látszik. De ritkán jobb..."
--
Gép : Asus P5G41T-M LX, Intel Celeron DC E3400, 4GB DDR3, 320GB SATA2, minden más integrált.
OS : Ubuntu 14.04
--
web: lassuviz.blogspot.hu/

Válasz:GetEnvironmentVariable Windows XP Home-on 2009 aug. 08 09:50 #366

  • Gábor
  • Gábor profilkép
  • Adminisztrátor
  • Adminisztrátor
  • Hozzászólások: 504
  • Köszönetek: 86
Több különbözö (látszólag értelmetlen) változatban is kipróbáltam, és nálam sem müködik.
A GetEnvironmentVariable( 'APPDATA' ) helyett a GetAppConfigDir(False) függvénnyel is kipróbáltam, de úgy sem ment. Ez utóbbi egy másik könyvtár nevét adja vissza, de nem is ez volt a lényeg.
  s:=GetEnvironmentVariable('APPDATA');
  //s:=GetAppConfigDir(False);
  sansi:=AnsiToUtf8(s);
  ssys:=SysToUtf8(s);
  sreansi:=Utf8ToAnsi(s);//feltételezve hogy már utf8 volt
  sresys:=Utf8ToSys(s);//feltételezve hogy már utf8 volt
 
  if DirectoryExists(s) then showmessage('Létezik: '+s);
  if DirectoryExists(sansi) then showmessage('ANSI Létezik: '+s);
  if DirectoryExists(ssys) then showmessage('SYS Létezik: '+s);
  if DirectoryExists(sreansi) then showmessage('REANSI Létezik: '+s);
  if DirectoryExists(sresys) then showmessage('RESYS Létezik: '+s);
 
  label1.caption:=s;
  Edit1.text:=s;
  label2.caption:='ANSI: '+sansi;
  Edit2.text:=sansi;
  label3.caption:='SYS: '+ssys;
  Edit3.text:=ssys;
  label4.caption:='REANSI: '+sreansi;
  Edit4.text:=sreansi;
  label5.caption:='RESYS: '+sresys;
  Edit5.text:=sresys;

Véleményem szerint ennek a jelenségnek csúnya BUG ár szaga van.

Töltsd le a legfrissebb snapshot -ot és ha azzal is baj van akkor be kell jelenteni hibaként.
Hogyan kérdezzünk okosan? / Mit kell tennünk kérdezés előtt? -- Lazarus 3.0 -- FPC 3.2-- GNU/Linux 5.15.0 x86_64

Válasz:GetEnvironmentVariable Windows XP Home-on 2009 aug. 07 18:13 #365

  • ejbenjaro
  • ejbenjaro profilkép Témaindító
  • Haladó forumozó
  • Haladó forumozó
  • Hozzászólások: 66
  • Köszönetek: 4
Nos itt egy eljárás a form OnCreate eseményéhez. A form-on egy label és egy edit van. A teszteléshez ennyi is elég azt hiszem.
procedure TForm1.FormCreate(Sender: TObject);
var s : string;
begin
  s:=GetEnvironmentVariable('APPDATA');
  if DirectoryExists(s) then showmessage('Létezik');
  Edit1.text:=AnsiToUtf8(s);
  label1.caption:=s;
end;
Így nálam a ShowMessage nem jelenik meg, az edit-ben megjelenik az elérési út, de az ékezetes betűk nem, label-ben pedig nem látszik az s értéke mivel ugye ott nem konvertáltam át utf8-ba az s stringet.
Mint korábban is írtam megpróbáltam már átalakítgatni a GetEnvironmentVariable által visszaadott stringet különböző karakterkódolásra, de igazából egyik sem segített. Az egyik unit szerint a GetEnvironmentVariable ISO8859-1 kódolású stringet ad vissza, a windowsomon CP1250(vagy Windows-1250, bár szerintem ez ugyan az) kódolás van gyanítom minden magyar xp-ben ez van alapból.
Az XP egyébként Home és minden megjelent frissítés fent van rajta.
Mottó:
"Az ember sokszor más mint aminek látszik. De ritkán jobb..."
--
Gép : Asus P5G41T-M LX, Intel Celeron DC E3400, 4GB DDR3, 320GB SATA2, minden más integrált.
OS : Ubuntu 14.04
--
web: lassuviz.blogspot.hu/

Válasz:GetEnvironmentVariable Windows XP Home-on 2009 aug. 07 17:30 #364

  • Gábor
  • Gábor profilkép
  • Adminisztrátor
  • Adminisztrátor
  • Hozzászólások: 504
  • Köszönetek: 86
Szia!

Írj ide egy nálad hibásan működő kódot! Kipróbálom az én gépemen is, mert a felhasználó(k) itt és ékezetesek.

Egy első olvasatra hasonló hibát (amit a Lazarus-ban (IDE) találtam) már bejelentettem és azóta javítva lett: #12449 .
Hogyan kérdezzünk okosan? / Mit kell tennünk kérdezés előtt? -- Lazarus 3.0 -- FPC 3.2-- GNU/Linux 5.15.0 x86_64

GetEnvironmentVariable Windows XP Home-on 2009 aug. 07 13:37 #363

  • ejbenjaro
  • ejbenjaro profilkép Témaindító
  • Haladó forumozó
  • Haladó forumozó
  • Hozzászólások: 66
  • Köszönetek: 4
Sziasztok!

Problémám támadt a GetEnvironmentVariable függvénnyel Windows alatt. Ha lekérem az APPDATA könyvtárat (vagy bármely másik környezeti változót), akkor mivel az elérési út tartalmaz ékezetes karaktereket is olyan értéket ad vissza a függvény amit például az DirectoryExists nem érzékel létező könyvtárnak. Pedig fontos lenne, hogy a programom a beállításait felhasználónként külön tudja tárolni az adott felhasználó Application Data könyvtárában. A lazarus wikiben levő Unicode support-os cikket megnéztem, kipróbáltam de ha átkonvertálom a függvény által visszaadott stringet az sem vezet eredményre, mert az ékezetek az átalakított stringben is hibásak lesznek. Kipróbáltam még az LConvEncoding unit-ot, valamint az Ararat Synapse Synachar unit-ját is, hogy hátha eredményre vezet, de ez sem oldotta meg a problémát. A "hibát" három lazarus verzióval is tudtam produkálni, a 0.9.26.2 éppen aktuális stabil a 2.2.2-es free pascallal, valamit a 0.9.26.3 és 0.9.27 verziók a 2.2.4-es free pascallal is hozzák a "hibát".
Kérem akinek van valami ötlete, hogy hogyan lehetne orvosolni ezt a problémát, az ne tartsa magában.
Üdv
Peti
Mottó:
"Az ember sokszor más mint aminek látszik. De ritkán jobb..."
--
Gép : Asus P5G41T-M LX, Intel Celeron DC E3400, 4GB DDR3, 320GB SATA2, minden más integrált.
OS : Ubuntu 14.04
--
web: lassuviz.blogspot.hu/

  • Oldal:
  • 1