Italian community of Lazarus and Free Pascal

Programmazione => Generale => Topic aperto da: aleric - Febbraio 14, 2024, 11:11:40 am

Titolo: file .dbf e lettere accentate
Inserito da: aleric - Febbraio 14, 2024, 11:11:40 am
Ciao a tutti, sono un vecchio programmatore che scrive programmi anche per mantenere il cervello in allenamento. In breve, un vecchio file .dbf che si ostina a non visualizzare correttamente le lettere accentate visualizzandolo con dbgrid. Notere che lo stesso file con embarcadero e minigui, e anche con un gestore di file .dbf viene visualizzato correttamente. Ho provato con Lazarus sia in ambiente linux che windows, niente da fare. Qualcuno ha idea di come ovviare all'inconveniente ? Grazie
Titolo: Re:file .dbf e lettere accentate
Inserito da: DragoRosso - Febbraio 14, 2024, 12:44:04 pm
Sei in Windows? Che componente usi per la connessione al DB ?

In Delphi viene usato il CP (codice ANSI) corretto, in Lazarus devi probabilmente settarlo. Penso che ciò debba avvenire nel settaggio della connessione. Se da qualche parte nel componente di connessione o nelle proprietà è possibile settare il CodePage / Set di caratteri (o codifica ANSI) prova il "WINDOWS-1252".
Titolo: Re:file .dbf e lettere accentate
Inserito da: tito_livio - Febbraio 24, 2024, 07:32:43 pm
Ciao,
per visualizzare il file dbf penso che tu abbia usato il componente tdbf, che trovi nel tab Data Access.
Questo componente è di serie installato in Lazarus.
Il modo in cui nei file dbf si codificavano le stringhe è diverso da come le codifica Lazarus e proprio per ovviare a questo problema il componente tdbf ha un metodo: OnTraslate.
La traduzione verrà effettuata solo per i campi che si vuole.
Grazie a questo metodo le lettere accentate vengono visualizzate correttamente.
Le stringhe vengono tradotte sia quando vengono lette dal file dbf e visualizzate, sia quando vengono scritte nel file. In questo modo, anche se il file viene modificato rimane sempre compatibile al formato di partenza.
Dentro al metodo OnTraslate, ovviamente, si deve scrivere il codice per tradurre le stringhe che trovi in un progettino di esempio che insieme ad un file dbf ti allego.
Spero di esserti stato d'aiuto.