Discussion:
Nome de arquivos com caracteres acentuados
Wagner Fernandes Silva
2012-12-16 17:04:52 UTC
Permalink
Olá Pessoal

Estou começando no Lazarus agora e estou tendo problemas com arquivos com
caracteres acentuados no nome.
Na linha de código a seguir, a variavel NomeArq "pega" uma string com o
nome de arquivo "Cópia de Arquivo.txt".
NomeArq:= FileListBox1.Items.Strings[i];

Mas ao examinar o conteúdo da variável pelo debug, temos o seguinte:
NomeArq='C'#195#179'pia de Arquivo.txt'

O problema ocorre quando passo o conteúdo de NomeArq para a API do Windows
para efetuar uma cópia do arquivo e o windows retorna a mensagem de erro
seguinte:
"Não é possível copiar o arquivo. Não é possível ler o arquivo ou disco de
origem."

Existe alguma solução para isso?

[]Žs

Wagner
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
lazarus-br-/***@public.gmane.org
Para cancelar a sua inscrição neste grupo, envie um e-mail para
lazarus-br+unsubscribe-/***@public.gmane.org
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
Marcos Douglas
2012-12-16 17:29:24 UTC
Permalink
Post by Wagner Fernandes Silva
Olá Pessoal
Estou começando no Lazarus agora e estou tendo problemas com arquivos com
caracteres acentuados no nome.
Na linha de código a seguir, a variavel NomeArq "pega" uma string com o nome
de arquivo "Cópia de Arquivo.txt".
NomeArq:= FileListBox1.Items.Strings[i];
NomeArq='C'#195#179'pia de Arquivo.txt'
O problema ocorre quando passo o conteúdo de NomeArq para a API do Windows
para efetuar uma cópia do arquivo e o windows retorna a mensagem de erro
"Não é possível copiar o arquivo. Não é possível ler o arquivo ou disco de
origem."
Existe alguma solução para isso?
SIM.
O Lazarus trabalha com UTF8. O Windows com UCS-2, diferente do Linux
que já trabalha com UTF8.
Vc precisa converter as strings do Lazarus (as informações que vem dos
formulários na sua aplicação) para o unicode que o Windows entenda.
Para tal, utilize a unit LazUTF8. Nela vc encontrará algumas funções,
mas as que vc precisa agora são apenas 2: UTF8ToSys e SysToUTF8.

Quando vc mandar uma string da aplicação para o Windows, faça:

s := UTF8ToSys(Edit1.Text);
funcaoWindows(s);

E o inverso:

s := funcaoWindows;
Edit1.Text := SysToUTF8(s);

Marcos Douglas
PS: o core do FPC já está trabalhando numa solução onde isso não irá
ser necessário, no entanto esta solução só está liberada nos fontes do
/trunk e não é considerada estável, ainda.
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
lazarus-br-/***@public.gmane.org
Para cancelar a sua inscrição neste grupo, envie um e-mail para
lazarus-br+unsubscribe-/***@public.gmane.org
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
luciano de souza
2012-12-16 19:32:24 UTC
Permalink
A Sysutils possui as funções AnsiToUTF8 e UTF8ToAnsi. Com elas não se
obtém o mesmo resultado? E se não for este o caso, então, não existem
soluções fora da LCL?
Post by Marcos Douglas
Post by Wagner Fernandes Silva
Olá Pessoal
Estou começando no Lazarus agora e estou tendo problemas com arquivos com
caracteres acentuados no nome.
Na linha de código a seguir, a variavel NomeArq "pega" uma string com o nome
de arquivo "Cópia de Arquivo.txt".
NomeArq:= FileListBox1.Items.Strings[i];
NomeArq='C'#195#179'pia de Arquivo.txt'
O problema ocorre quando passo o conteúdo de NomeArq para a API do Windows
para efetuar uma cópia do arquivo e o windows retorna a mensagem de erro
"Não é possível copiar o arquivo. Não é possível ler o arquivo ou disco de
origem."
Existe alguma solução para isso?
SIM.
O Lazarus trabalha com UTF8. O Windows com UCS-2, diferente do Linux
que já trabalha com UTF8.
Vc precisa converter as strings do Lazarus (as informações que vem dos
formulários na sua aplicação) para o unicode que o Windows entenda.
Para tal, utilize a unit LazUTF8. Nela vc encontrará algumas funções,
mas as que vc precisa agora são apenas 2: UTF8ToSys e SysToUTF8.
s := UTF8ToSys(Edit1.Text);
funcaoWindows(s);
s := funcaoWindows;
Edit1.Text := SysToUTF8(s);
Marcos Douglas
PS: o core do FPC já está trabalhando numa solução onde isso não irá
ser necessário, no entanto esta solução só está liberada nos fontes do
/trunk e não é considerada estável, ainda.
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
Para cancelar a sua inscrição neste grupo, envie um e-mail para
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
--
Luciano de Souza
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
lazarus-br-/***@public.gmane.org
Para cancelar a sua inscrição neste grupo, envie um e-mail para
lazarus-br+unsubscribe-/***@public.gmane.org
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
Marcos Douglas
2012-12-16 20:13:04 UTC
Permalink
Post by luciano de souza
A Sysutils possui as funções AnsiToUTF8 e UTF8ToAnsi. Com elas não se
obtém o mesmo resultado? E se não for este o caso, então, não existem
soluções fora da LCL?
Sim, mesmo resultado.
A diferença é que a LazUTF8 é mais "esperta" e só fará a conversão se
necessário (bom para sistemas multiplataforma).

Marcos Douglas
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
lazarus-br-/***@public.gmane.org
Para cancelar a sua inscrição neste grupo, envie um e-mail para
lazarus-br+unsubscribe-/***@public.gmane.org
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
Marcos Elias
2012-12-17 14:42:21 UTC
Permalink
Eu não tenho certeza dos passos executados, mas já me bati muito com isso
no passado. As versões atuais do Windows também trabalham com UTF.
Converter pra sys.../ansi não vai causar problema nesses casos? Lembro de
ter tido divergências quando rodei um programa no Windoww XP e no 7,
testando no 7 alguns arquivos com caracteres unicode referentes a outros
idiomas (japonês, chinês, etc). Eles apareciam normalmente no Explorer e
podiam ser abertos na maioria dos programas, exceto os feitos em Delphi ou
Lazarus (ou em alguns antigos, que não sei no que foram feitos).
Se eu usasse a AnsiToUTF8 e UTF8ToAnsi o programa não conseguia abrir
arquivos com acentos no nome nas versões velhas do Windows (2000, XP).
Idem quando precisei carregar arquivos numa stringlist: os arquivos com
caracteres unicode no nome ficavam zuados, dando como caminho inválido ao
tentar chamá-los.
Essa LazUTF8 lida bem com esses casos então?

Vou testar assim que puder.
Post by Marcos Douglas
Post by luciano de souza
A Sysutils possui as funções AnsiToUTF8 e UTF8ToAnsi. Com elas não se
obtém o mesmo resultado? E se não for este o caso, então, não existem
soluções fora da LCL?
Sim, mesmo resultado.
A diferença é que a LazUTF8 é mais "esperta" e só fará a conversão se
necessário (bom para sistemas multiplataforma).
Marcos Douglas
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
Para cancelar a sua inscrição neste grupo, envie um e-mail para
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
lazarus-br-/***@public.gmane.org
Para cancelar a sua inscrição neste grupo, envie um e-mail para
lazarus-br+unsubscribe-/***@public.gmane.org
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
Marcos Douglas
2012-12-17 15:53:58 UTC
Permalink
Eu não tenho certeza dos passos executados, mas já me bati muito com isso no
passado. As versões atuais do Windows também trabalham com UTF. Converter
pra sys.../ansi não vai causar problema nesses casos? Lembro de ter tido
divergências quando rodei um programa no Windoww XP e no 7, testando no 7
alguns arquivos com caracteres unicode referentes a outros idiomas (japonês,
chinês, etc). Eles apareciam normalmente no Explorer e podiam ser abertos na
maioria dos programas, exceto os feitos em Delphi ou Lazarus (ou em alguns
antigos, que não sei no que foram feitos).
Se eu usasse a AnsiToUTF8 e UTF8ToAnsi o programa não conseguia abrir
arquivos com acentos no nome nas versões velhas do Windows (2000, XP).
Idem quando precisei carregar arquivos numa stringlist: os arquivos com
caracteres unicode no nome ficavam zuados, dando como caminho inválido ao
tentar chamá-los.
O problema é:
a) FPC usa ANSI
b) Lazarus usa UTF8
c) Windows usa UCS-2 (ou pode chamar de UTF16).

Então vc precisa saber qual codificação está trabalhando antes de
ficar repassando strings pra lá e pra cá (infelizmente ainda é assim
no FPC/Lazarus).
A TStringList tem uma "pegadinha". No Lazarus ela faz a persistência
corretamente das strings dependendo do SO que ela está sendo
executada... mas não é qq instância da TStringList!!! Apenas aquelas
que são utilizadas pelos componentes da LCL (TMemo.Lines, por exemplo)
é que fazem essa "mágica".
Isso confunde muito. Há momentos que vc se perde: converto; não
converto; a LCL vai converter aqui, lá não; aqui é FCL e é ANSI; agora
vou chamar uma função da API do Windows, tenho que converter; faço uma
reconversão agora; etc, etc.

Na lista oficial há debate interminável sobre isso... uns querem ANSI
pela velocidade ou compatibilidade, outros querem tudo UTF8, outros
querem tudo UTF16, outros querem que trabalhe com o encode do SO, etc.
Essa LazUTF8 lida bem com esses casos então?
Vou testar assim que puder.
Lida melhor do que chamar diretamente AnsiToUTF8/UTF8ToAnsi pois ela
faz uma checagem antes... porém não é infalível.
Para (tentar) ser infalível muitos testes teriam que ser executados e
o programa ficaria muito lento.

Marcos Douglas
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
lazarus-br-/***@public.gmane.org
Para cancelar a sua inscrição neste grupo, envie um e-mail para
lazarus-br+unsubscribe-/***@public.gmane.org
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
Marcos Elias
2012-12-17 16:27:30 UTC
Permalink
Caramba... Obrigado pelo retorno.

Fica difícil levar o Lazarus a sério assim, se nem um tratamento nativo dos
caminhos dos arquivos ele fornece =/

Eu tinha esperanças de que ele tinha melhorado muito, estou há um ou 2 anos
parado nisso... Em apps pra usuários finais que rodarão em várias versões
do Windows a coisa complica então.

Será que ninguém até agora desenvolveu uma unit extra com funções para
isso, resolvendo de uma vez por todas os caminhos de arquivos?

Quando voltar a ter um tempinho livre vou ver se crio alguma gambiarra.
Ficar testando em cada chamada ou programa é bem chato.
Post by Marcos Elias
Eu não tenho certeza dos passos executados, mas já me bati muito com
isso no
Post by Marcos Elias
passado. As versões atuais do Windows também trabalham com UTF. Converter
pra sys.../ansi não vai causar problema nesses casos? Lembro de ter tido
divergências quando rodei um programa no Windoww XP e no 7, testando no 7
alguns arquivos com caracteres unicode referentes a outros idiomas
(japonês,
Post by Marcos Elias
chinês, etc). Eles apareciam normalmente no Explorer e podiam ser
abertos na
Post by Marcos Elias
maioria dos programas, exceto os feitos em Delphi ou Lazarus (ou em
alguns
Post by Marcos Elias
antigos, que não sei no que foram feitos).
Se eu usasse a AnsiToUTF8 e UTF8ToAnsi o programa não conseguia abrir
arquivos com acentos no nome nas versões velhas do Windows (2000, XP).
Idem quando precisei carregar arquivos numa stringlist: os arquivos com
caracteres unicode no nome ficavam zuados, dando como caminho inválido ao
tentar chamá-los.
a) FPC usa ANSI
b) Lazarus usa UTF8
c) Windows usa UCS-2 (ou pode chamar de UTF16).
Então vc precisa saber qual codificação está trabalhando antes de
ficar repassando strings pra lá e pra cá (infelizmente ainda é assim
no FPC/Lazarus).
A TStringList tem uma "pegadinha". No Lazarus ela faz a persistência
corretamente das strings dependendo do SO que ela está sendo
executada... mas não é qq instância da TStringList!!! Apenas aquelas
que são utilizadas pelos componentes da LCL (TMemo.Lines, por exemplo)
é que fazem essa "mágica".
Isso confunde muito. Há momentos que vc se perde: converto; não
converto; a LCL vai converter aqui, lá não; aqui é FCL e é ANSI; agora
vou chamar uma função da API do Windows, tenho que converter; faço uma
reconversão agora; etc, etc.
Na lista oficial há debate interminável sobre isso... uns querem ANSI
pela velocidade ou compatibilidade, outros querem tudo UTF8, outros
querem tudo UTF16, outros querem que trabalhe com o encode do SO, etc.
Post by Marcos Elias
Essa LazUTF8 lida bem com esses casos então?
Vou testar assim que puder.
Lida melhor do que chamar diretamente AnsiToUTF8/UTF8ToAnsi pois ela
faz uma checagem antes... porém não é infalível.
Para (tentar) ser infalível muitos testes teriam que ser executados e
o programa ficaria muito lento.
Marcos Douglas
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
Para cancelar a sua inscrição neste grupo, envie um e-mail para
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
lazarus-br-/***@public.gmane.org
Para cancelar a sua inscrição neste grupo, envie um e-mail para
lazarus-br+unsubscribe-/***@public.gmane.org
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
Daniel Simões de Almeida
2012-12-17 16:47:48 UTC
Permalink
*"Fica difícil levar o Lazarus a sério assim, se nem um tratamento nativo
dos caminhos dos arquivos ele fornece =/"*

Comentário pejorativo totalmente desnecessário.. Dificilmente você
conseguirá ajuda dessa maneira...

O Lazarus é um projeto sério e maduro, e mantido por ótimos desenvolvedores
(alguns dos melhores que já vi)..
Nossa empresa usa o Lazarus em 100% de sua linha de novos produtos...
Veja: www.djpdv.com.br


Se o Delphi atende as suas necessidades porque tentar mudar para Lazarus ??

[]s Daniel

Conheça o Projeto ACBr - Automaçao Comercial
Brasil<http://acbr.sourceforge.net/>
DJSystem a Loja Patrocinadora do ACBr <http://www.djsystem.com.br/>
Post by Marcos Elias
Caramba... Obrigado pelo retorno.
Fica difícil levar o Lazarus a sério assim, se nem um tratamento nativo
dos caminhos dos arquivos ele fornece =/
Eu tinha esperanças de que ele tinha melhorado muito, estou há um ou 2
anos parado nisso... Em apps pra usuários finais que rodarão em várias
versões do Windows a coisa complica então.
Será que ninguém até agora desenvolveu uma unit extra com funções para
isso, resolvendo de uma vez por todas os caminhos de arquivos?
Quando voltar a ter um tempinho livre vou ver se crio alguma gambiarra.
Ficar testando em cada chamada ou programa é bem chato.
Post by Marcos Elias
Eu não tenho certeza dos passos executados, mas já me bati muito com
isso no
Post by Marcos Elias
passado. As versões atuais do Windows também trabalham com UTF.
Converter
Post by Marcos Elias
pra sys.../ansi não vai causar problema nesses casos? Lembro de ter tido
divergências quando rodei um programa no Windoww XP e no 7, testando no
7
Post by Marcos Elias
alguns arquivos com caracteres unicode referentes a outros idiomas
(japonês,
Post by Marcos Elias
chinês, etc). Eles apareciam normalmente no Explorer e podiam ser
abertos na
Post by Marcos Elias
maioria dos programas, exceto os feitos em Delphi ou Lazarus (ou em
alguns
Post by Marcos Elias
antigos, que não sei no que foram feitos).
Se eu usasse a AnsiToUTF8 e UTF8ToAnsi o programa não conseguia abrir
arquivos com acentos no nome nas versões velhas do Windows (2000, XP).
Idem quando precisei carregar arquivos numa stringlist: os arquivos com
caracteres unicode no nome ficavam zuados, dando como caminho inválido
ao
Post by Marcos Elias
tentar chamá-los.
a) FPC usa ANSI
b) Lazarus usa UTF8
c) Windows usa UCS-2 (ou pode chamar de UTF16).
Então vc precisa saber qual codificação está trabalhando antes de
ficar repassando strings pra lá e pra cá (infelizmente ainda é assim
no FPC/Lazarus).
A TStringList tem uma "pegadinha". No Lazarus ela faz a persistência
corretamente das strings dependendo do SO que ela está sendo
executada... mas não é qq instância da TStringList!!! Apenas aquelas
que são utilizadas pelos componentes da LCL (TMemo.Lines, por exemplo)
é que fazem essa "mágica".
Isso confunde muito. Há momentos que vc se perde: converto; não
converto; a LCL vai converter aqui, lá não; aqui é FCL e é ANSI; agora
vou chamar uma função da API do Windows, tenho que converter; faço uma
reconversão agora; etc, etc.
Na lista oficial há debate interminável sobre isso... uns querem ANSI
pela velocidade ou compatibilidade, outros querem tudo UTF8, outros
querem tudo UTF16, outros querem que trabalhe com o encode do SO, etc.
Post by Marcos Elias
Essa LazUTF8 lida bem com esses casos então?
Vou testar assim que puder.
Lida melhor do que chamar diretamente AnsiToUTF8/UTF8ToAnsi pois ela
faz uma checagem antes... porém não é infalível.
Para (tentar) ser infalível muitos testes teriam que ser executados e
o programa ficaria muito lento.
Marcos Douglas
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
Para cancelar a sua inscrição neste grupo, envie um e-mail para
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
Para cancelar a sua inscrição neste grupo, envie um e-mail para
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
lazarus-br-/***@public.gmane.org
Para cancelar a sua inscrição neste grupo, envie um e-mail para
lazarus-br+unsubscribe-/***@public.gmane.org
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
Juliomar Marchetti
2012-12-17 16:51:50 UTC
Permalink
Concordo com o Daniel
um comentário infeliz

é Um ótimo projeto, sendo open source, rodando cross-plataforma, atendendo
aos sistemas operacionais de igual

Não sou um utilizador assíduo, pois onde trabalho já vinha legado do
delphi, mas em outros projetos sempre utilizo o mesmo
Fora os programadores que mantem e estão sempre a atualizar o mesmo, tem
que sempre lembrar como anda uma ferramenta
paga e outro que vive de doações

Em 17 de dezembro de 2012 14:47, Daniel Simões de Almeida <
Post by Daniel Simões de Almeida
*"Fica difícil levar o Lazarus a sério assim, se nem um tratamento nativo
dos caminhos dos arquivos ele fornece =/"*
Comentário pejorativo totalmente desnecessário.. Dificilmente você
conseguirá ajuda dessa maneira...
O Lazarus é um projeto sério e maduro, e mantido por ótimos
desenvolvedores (alguns dos melhores que já vi)..
Nossa empresa usa o Lazarus em 100% de sua linha de novos produtos...
Veja: www.djpdv.com.br
Se o Delphi atende as suas necessidades porque tentar mudar para Lazarus ??
[]s Daniel
Conheça o Projeto ACBr - Automaçao Comercial Brasil<http://acbr.sourceforge.net/>
DJSystem a Loja Patrocinadora do ACBr <http://www.djsystem.com.br/>
Caramba... Obrigado pelo retorno.
Post by Marcos Elias
Fica difícil levar o Lazarus a sério assim, se nem um tratamento nativo
dos caminhos dos arquivos ele fornece =/
Eu tinha esperanças de que ele tinha melhorado muito, estou há um ou 2
anos parado nisso... Em apps pra usuários finais que rodarão em várias
versões do Windows a coisa complica então.
Será que ninguém até agora desenvolveu uma unit extra com funções para
isso, resolvendo de uma vez por todas os caminhos de arquivos?
Quando voltar a ter um tempinho livre vou ver se crio alguma gambiarra.
Ficar testando em cada chamada ou programa é bem chato.
Post by Marcos Elias
Eu não tenho certeza dos passos executados, mas já me bati muito com
isso no
Post by Marcos Elias
passado. As versões atuais do Windows também trabalham com UTF.
Converter
Post by Marcos Elias
pra sys.../ansi não vai causar problema nesses casos? Lembro de ter
tido
Post by Marcos Elias
divergências quando rodei um programa no Windoww XP e no 7, testando
no 7
Post by Marcos Elias
alguns arquivos com caracteres unicode referentes a outros idiomas
(japonês,
Post by Marcos Elias
chinês, etc). Eles apareciam normalmente no Explorer e podiam ser
abertos na
Post by Marcos Elias
maioria dos programas, exceto os feitos em Delphi ou Lazarus (ou em
alguns
Post by Marcos Elias
antigos, que não sei no que foram feitos).
Se eu usasse a AnsiToUTF8 e UTF8ToAnsi o programa não conseguia abrir
arquivos com acentos no nome nas versões velhas do Windows (2000, XP).
Idem quando precisei carregar arquivos numa stringlist: os arquivos com
caracteres unicode no nome ficavam zuados, dando como caminho inválido
ao
Post by Marcos Elias
tentar chamá-los.
a) FPC usa ANSI
b) Lazarus usa UTF8
c) Windows usa UCS-2 (ou pode chamar de UTF16).
Então vc precisa saber qual codificação está trabalhando antes de
ficar repassando strings pra lá e pra cá (infelizmente ainda é assim
no FPC/Lazarus).
A TStringList tem uma "pegadinha". No Lazarus ela faz a persistência
corretamente das strings dependendo do SO que ela está sendo
executada... mas não é qq instância da TStringList!!! Apenas aquelas
que são utilizadas pelos componentes da LCL (TMemo.Lines, por exemplo)
é que fazem essa "mágica".
Isso confunde muito. Há momentos que vc se perde: converto; não
converto; a LCL vai converter aqui, lá não; aqui é FCL e é ANSI; agora
vou chamar uma função da API do Windows, tenho que converter; faço uma
reconversão agora; etc, etc.
Na lista oficial há debate interminável sobre isso... uns querem ANSI
pela velocidade ou compatibilidade, outros querem tudo UTF8, outros
querem tudo UTF16, outros querem que trabalhe com o encode do SO, etc.
Post by Marcos Elias
Essa LazUTF8 lida bem com esses casos então?
Vou testar assim que puder.
Lida melhor do que chamar diretamente AnsiToUTF8/UTF8ToAnsi pois ela
faz uma checagem antes... porém não é infalível.
Para (tentar) ser infalível muitos testes teriam que ser executados e
o programa ficaria muito lento.
Marcos Douglas
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
Para cancelar a sua inscrição neste grupo, envie um e-mail para
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
Para cancelar a sua inscrição neste grupo, envie um e-mail para
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
Para cancelar a sua inscrição neste grupo, envie um e-mail para
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
--
--
Atenciosamente

*Juliomar Marchetti*
Analista de Sistemas

e-mail: *juliomar_m-/E1597aS9LRfJ/***@public.gmane.org*
skype: *juliomar*
talk: *juliomarmarchetti-***@public.gmane.org*
msn: *juliomarmarchetti-***@public.gmane.org*
twitter: *juliomar_m*
facebook: *www.facebook.com/juliomar.marchetti*
cel. (TIM): *55 49 8426-8589*
cel. (Oi) : *55 49 8421-8617*
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
lazarus-br-/***@public.gmane.org
Para cancelar a sua inscrição neste grupo, envie um e-mail para
lazarus-br+unsubscribe-/***@public.gmane.org
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
Marcos Douglas
2012-12-17 16:56:01 UTC
Permalink
"Fica difícil levar o Lazarus a sério assim, se nem um tratamento nativo dos
caminhos dos arquivos ele fornece =/"
Comentário pejorativo totalmente desnecessário.. Dificilmente você
conseguirá ajuda dessa maneira...
O Lazarus é um projeto sério e maduro, e mantido por ótimos desenvolvedores
(alguns dos melhores que já vi)..
www.djpdv.com.br
Se o Delphi atende as suas necessidades porque tentar mudar para Lazarus ??
Perfeito.

Marcos Douglas
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
lazarus-br-/***@public.gmane.org
Para cancelar a sua inscrição neste grupo, envie um e-mail para
lazarus-br+unsubscribe-/***@public.gmane.org
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
Marcos Elias
2012-12-17 17:45:26 UTC
Permalink
Quer dizer que devo tratar o Lazarus como um deus, é proibido criticá-lo e
encarar os problemas só por ser de graça e tal? Essa lista já foi mais
receptiva...

Sou entusiasta de software livre, mas se algo se propõe a fazer algo, no
mínimo tem que funcionar... Se até hoje não corrigiram isso (apesar de ter
passado da versão 1.0), sinal de que não estão nem aí pro problema... Ainda
mais considerando criação de aplicativos voltados a todos os tipos de
usuários.

Se isso consolar, o Delphi apresentava um problema semelhante, não sei como
está hoje (mas nunca passei por isso nas ferramentas da MS mesmo).
Post by Daniel Simões de Almeida
Post by Daniel Simões de Almeida
"Fica difícil levar o Lazarus a sério assim, se nem um tratamento nativo
dos
Post by Daniel Simões de Almeida
caminhos dos arquivos ele fornece =/"
Comentário pejorativo totalmente desnecessário.. Dificilmente você
conseguirá ajuda dessa maneira...
O Lazarus é um projeto sério e maduro, e mantido por ótimos
desenvolvedores
Post by Daniel Simões de Almeida
(alguns dos melhores que já vi)..
Nossa empresa usa o Lazarus em 100% de sua linha de novos produtos...
www.djpdv.com.br
Se o Delphi atende as suas necessidades porque tentar mudar para Lazarus
??
Perfeito.
Marcos Douglas
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
Para cancelar a sua inscrição neste grupo, envie um e-mail para
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
lazarus-br-/***@public.gmane.org
Para cancelar a sua inscrição neste grupo, envie um e-mail para
lazarus-br+unsubscribe-/***@public.gmane.org
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
Arnaldo Silva
2012-12-17 17:50:26 UTC
Permalink
Post by Marcos Elias
Quer dizer que devo tratar o Lazarus como um deus, é proibido
criticá-lo e encarar os problemas só por ser de graça e tal? Essa
lista já foi mais receptiva...
Rapaz, não precisa tratar como um Deus, mas também quem é tu para falar
o que quer se nunca ajudou a consertar a ferramenta? temos de ser mais
receptivo as tuas críticas? sai fora!!!!
Post by Marcos Elias
Sou entusiasta de software livre, mas se algo se propõe a fazer algo,
no mínimo tem que funcionar...
E funciona!!! mas você não sabe programar, vai aprender primeiro, vai
colaborar, etc.. o que tu tens feito até aqui???? rsrsrsrsrsrsrs
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
lazarus-br-/***@public.gmane.org
Para cancelar a sua inscrição neste grupo, envie um e-mail para
lazarus-br+unsubscribe-/***@public.gmane.org
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
Valmadson Santos
2012-12-17 17:52:28 UTC
Permalink
Acho bom ficarmos por aqui turma.
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
lazarus-br-/***@public.gmane.org
Para cancelar a sua inscrição neste grupo, envie um e-mail para
lazarus-br+unsubscribe-/***@public.gmane.org
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
Marcos Douglas
2012-12-17 18:16:11 UTC
Permalink
Post by Marcos Elias
Quer dizer que devo tratar o Lazarus como um deus, é proibido criticá-lo e
encarar os problemas só por ser de graça e tal? Essa lista já foi mais
receptiva...
É claro que não é assim. Somente achamos que sua crítica foi dura
demais pra alguém que voltou ao Lazarus depois de muito tempo... mas
deixemos isso pra lá? Tratemos como um mal entendido?
Post by Marcos Elias
Sou entusiasta de software livre, mas se algo se propõe a fazer algo, no
mínimo tem que funcionar...
Mas funciona! Como dissemos, temos software rodando em produção, tanto
Linux como Windows.
Post by Marcos Elias
Se até hoje não corrigiram isso (apesar de ter
passado da versão 1.0), sinal de que não estão nem aí pro problema... Ainda
mais considerando criação de aplicativos voltados a todos os tipos de
usuários.
Errado. O problema é que há divergências sobre a melhor forma de fazer
o suporte a Unicode. Existem muitos programadores trabalhando no core
e milhares de programas rodando ao redor do mundo. Então não é fácil
fazer tal correção sem pensar na compatibilidade.
Post by Marcos Elias
Se isso consolar, o Delphi apresentava um problema semelhante, não sei como
está hoje (mas nunca passei por isso nas ferramentas da MS mesmo).
Exatamente. A Embarcadero não pensou na compatibilidade. Mudou string
para Unicode, voltou, foi novamente (eu nem acompanho mais). Não os
julgo. É uma empresa e precisam lucrar... eles que sabem suas
prioridades.

Marcos Douglas
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
lazarus-br-/***@public.gmane.org
Para cancelar a sua inscrição neste grupo, envie um e-mail para
lazarus-br+unsubscribe-/***@public.gmane.org
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
Daniel S. Almeida
2012-12-17 18:52:22 UTC
Permalink
Quem fala o que quer... ouve o que nao quer...

Eu so tenho elogios para o Lazarus e sua equipe... mas se vc nao esta contente... deixe ele de lado... simples assim...

OpenSource somente é recomendado para quem está disposto a por a mão na massa.... se quer "reclamar com o fabricante" use uma solução comercial (Ex: Delphi)

Daniel S.Almeida

Sent from my Kindle Fire



_____________________________________________
From: Marcos Elias <mah.mep-***@public.gmane.org>
Sent: Mon Dec 17 15:45:26 GMT-03:00 2012
To: lazarus-br-/***@public.gmane.org
Subject: Re: [lazarus-br] Nome de arquivos com caracteres acentuados


Quer dizer que devo tratar o Lazarus como um deus, é proibido criticá-lo e encarar os problemas só por ser de graça e tal? Essa lista já foi mais receptiva...

Sou entusiasta de software livre, mas se algo se propõe a fazer algo, no mínimo tem que funcionar... Se até hoje não corrigiram isso (apesar de ter passado da versão 1.0), sinal de que não estão nem aí pro problema... Ainda mais considerando criação de aplicativos voltados a todos os tipos de usuários.


Se isso consolar, o Delphi apresentava um problema semelhante, não sei como está hoje (mas nunca passei por isso nas ferramentas da MS mesmo).
"Fica difícil levar o Lazarus a sério assim, se nem um tratamento nativo dos
caminhos dos arquivos ele fornece =/"
Comentário pejorativo totalmente desnecessário.. Dificilmente você
conseguirá ajuda dessa maneira...
O Lazarus é um projeto sério e maduro, e mantido por ótimos desenvolvedores
(alguns dos melhores que já vi)..
www.djpdv.com.br
Se o Delphi atende as suas necessidades porque tentar mudar para Lazarus ??
Perfeito.


Marcos Douglas

--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
lazarus-br-/***@public.gmane.org
Para cancelar a sua inscrição neste grupo, envie um e-mail para
lazarus-br+unsubscribe-/***@public.gmane.org
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
lazarus-br-/***@public.gmane.org
Para cancelar a sua inscrição neste grupo, envie um e-mail para
lazarus-br+unsubscribe-/***@public.gmane.org
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
lazarus-br-/***@public.gmane.org
Para cancelar a sua inscrição neste grupo, envie um e-mail para
lazarus-br+unsubscribe-/***@public.gmane.org
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
Marcos Elias
2012-12-17 19:19:58 UTC
Permalink
Sussa. Mas não retiro uma palavra do que disse. Se soubesse eu
implementaria, mas colocar mais POG onde já tem um monte... Melhor esperar
mesmo.

Em 17 de dezembro de 2012 16:52, Daniel S. Almeida
Post by Daniel S. Almeida
**
Quem fala o que quer... ouve o que nao quer...
Eu so tenho elogios para o Lazarus e sua equipe... mas se vc nao esta
contente... deixe ele de lado... simples assim...
OpenSource somente é recomendado para quem está disposto a por a mão na
massa.... se quer "reclamar com o fabricante" use uma solução comercial
(Ex: Delphi)
Daniel S.Almeida
Sent from my Kindle Fire
------------------------------
*Sent:* Mon Dec 17 15:45:26 GMT-03:00 2012
*Subject:* Re: [lazarus-br] Nome de arquivos com caracteres acentuados
Quer dizer que devo tratar o Lazarus como um deus, é proibido criticá-lo e
encarar os problemas só por ser de graça e tal? Essa lista já foi mais
receptiva...
Sou entusiasta de software livre, mas se algo se propõe a fazer algo, no
mínimo tem que funcionar... Se até hoje não corrigiram isso (apesar de ter
passado da versão 1.0), sinal de que não estão nem aí pro problema... Ainda
mais considerando criação de aplicativos voltados a todos os tipos de
usuários.
Se isso consolar, o Delphi apresentava um problema semelhante, não sei
como está hoje (mas nunca passei por isso nas ferramentas da MS mesmo).
Post by Marcos Elias
Post by Daniel Simões de Almeida
"Fica difícil levar o Lazarus a sério assim, se nem um tratamento
nativo dos
Post by Daniel Simões de Almeida
caminhos dos arquivos ele fornece =/"
Comentário pejorativo totalmente desnecessário.. Dificilmente você
conseguirá ajuda dessa maneira...
O Lazarus é um projeto sério e maduro, e mantido por ótimos
desenvolvedores
Post by Daniel Simões de Almeida
(alguns dos melhores que já vi)..
Nossa empresa usa o Lazarus em 100% de sua linha de novos produtos...
www.djpdv.com.br
Se o Delphi atende as suas necessidades porque tentar mudar para
Lazarus ??
Perfeito.
Marcos Douglas
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
Para cancelar a sua inscrição neste grupo, envie um e-mail para
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
Para cancelar a sua inscrição neste grupo, envie um e-mail para
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
Para cancelar a sua inscrição neste grupo, envie um e-mail para
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
lazarus-br-/***@public.gmane.org
Para cancelar a sua inscrição neste grupo, envie um e-mail para
lazarus-br+unsubscribe-/***@public.gmane.org
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
silvioprog
2012-12-17 19:38:53 UTC
Permalink
Post by Marcos Elias
Sussa. Mas não retiro uma palavra do que disse. Se soubesse eu
implementaria, mas colocar mais POG onde já tem um monte... Melhor esperar
mesmo.
peguei o bonde andando...

eu pensei que ia ter problemas com unicode, mas sobrevivi bem. num dos
demos web que deixei online vi o povo postando uns caracteres esquisitos,
mas pelo que entendi é no idioma deles, e pelo visto funcionou tudo muito
bem:

http://brookframework.org/demos/db/blog/blog.bf

enfim, não tenho problemas com unicode, e se tivesse abriria um issue caso
eu não tivesse uma luz de como resolver, mas voltar a ferramenta
proprietária só por causa disso, jamais. :)
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
lazarus-br-/***@public.gmane.org
Para cancelar a sua inscrição neste grupo, envie um e-mail para
lazarus-br+unsubscribe-/***@public.gmane.org
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
helioroots roots
2012-12-17 19:47:01 UTC
Permalink
Com esse seu grau de exigência, vc vai fica esperando muito... minha
opinião é q toda as pessoas deveriam ser um pouco mais flexiveis, ou
quem tão pouco ajuda não deveria atrapalhar....
Post by Marcos Elias
Sussa. Mas não retiro uma palavra do que disse. Se soubesse eu
implementaria, mas colocar mais POG onde já tem um monte... Melhor esperar
mesmo.
Em 17 de dezembro de 2012 16:52, Daniel S. Almeida
Post by Daniel S. Almeida
**
Quem fala o que quer... ouve o que nao quer...
Eu so tenho elogios para o Lazarus e sua equipe... mas se vc nao esta
contente... deixe ele de lado... simples assim...
OpenSource somente é recomendado para quem está disposto a por a mão na
massa.... se quer "reclamar com o fabricante" use uma solução comercial
(Ex: Delphi)
Daniel S.Almeida
Sent from my Kindle Fire
------------------------------
*Sent:* Mon Dec 17 15:45:26 GMT-03:00 2012
*Subject:* Re: [lazarus-br] Nome de arquivos com caracteres acentuados
Quer dizer que devo tratar o Lazarus como um deus, é proibido criticá-lo e
encarar os problemas só por ser de graça e tal? Essa lista já foi mais
receptiva...
Sou entusiasta de software livre, mas se algo se propõe a fazer algo, no
mínimo tem que funcionar... Se até hoje não corrigiram isso (apesar de ter
passado da versão 1.0), sinal de que não estão nem aí pro problema... Ainda
mais considerando criação de aplicativos voltados a todos os tipos de
usuários.
Se isso consolar, o Delphi apresentava um problema semelhante, não sei
como está hoje (mas nunca passei por isso nas ferramentas da MS mesmo).
Post by Marcos Elias
Post by Daniel Simões de Almeida
"Fica difícil levar o Lazarus a sério assim, se nem um tratamento
nativo dos
Post by Daniel Simões de Almeida
caminhos dos arquivos ele fornece =/"
Comentário pejorativo totalmente desnecessário.. Dificilmente você
conseguirá ajuda dessa maneira...
O Lazarus é um projeto sério e maduro, e mantido por ótimos
desenvolvedores
Post by Daniel Simões de Almeida
(alguns dos melhores que já vi)..
Nossa empresa usa o Lazarus em 100% de sua linha de novos produtos...
www.djpdv.com.br
Se o Delphi atende as suas necessidades porque tentar mudar para
Lazarus ??
Perfeito.
Marcos Douglas
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
Para cancelar a sua inscrição neste grupo, envie um e-mail para
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
Para cancelar a sua inscrição neste grupo, envie um e-mail para
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
Para cancelar a sua inscrição neste grupo, envie um e-mail para
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
Para cancelar a sua inscrição neste grupo, envie um e-mail para
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
lazarus-br-/***@public.gmane.org
Para cancelar a sua inscrição neste grupo, envie um e-mail para
lazarus-br+unsubscribe-/***@public.gmane.org
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
Marcos Elias
2012-12-17 20:24:56 UTC
Permalink
Eu só desabafei, nada demais... Ninguém é obrigado a concordar... Não sei
pq o povo se dói tanto como se fosse um ataque pessoal, sendo que apenas
critiquei um problema REAL que não tem solução NATIVA ainda, e pelo que
parece não terá tão cedo... Isso não desmerece todo o trabalho com o
Lazarus, mas pros apps que eu preciso, já chegam as minha próprias
gambiarras...

Em 17 de dezembro de 2012 17:47, helioroots roots
Post by helioroots roots
opinião é q toda as pessoas deveriam ser um pouco mais flexiveis, ou
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
lazarus-br-/***@public.gmane.org
Para cancelar a sua inscrição neste grupo, envie um e-mail para
lazarus-br+unsubscribe-/***@public.gmane.org
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
Marcos Elias
2012-12-17 20:49:41 UTC
Permalink
É realmente necessário tudo isso? Porque não falou na lista?
Post by Marcos Elias
Eu só desabafei, nada demais... Ninguém é obrigado a concordar... Não sei
pq o povo se dói tanto como se fosse um ataque pessoal, sendo que apenas
critiquei um problema REAL que não tem solução NATIVA ainda, e pelo que
parece não terá tão cedo... Isso não desmerece todo o trabalho com o
Lazarus, mas pros apps que eu preciso, já chegam as minha próprias
gambiarras...
opinião é q toda as pessoas deveriam ser um pouco mais flexiveis, ou
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
lazarus-br-/***@public.gmane.org
Para cancelar a sua inscrição neste grupo, envie um e-mail para
lazarus-br+unsubscribe-/***@public.gmane.org
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
William Oliveira Ferreira
2012-12-18 04:18:01 UTC
Permalink
Marcos Elias Picão! Não esperava mais encontrar um email seu nesta lista!
Bom, você bateu de frente com um dos dilemas da comunidade lazarus-fpc!
Como já foi dito, o desafio é encontrar uma solução que não mate projetos
antigos! O LazUTF8 e o UTF8ToSys são workarounds mas não são tão ruins, é
até fácil lidar com eles com o tempo. Bom, você que escreveu tantos artigos
sobre projetos open source para o gdh sabe que todo bom projeto open source
tem seu paradoxo para resolver. Mas não desista do Lazarus pois ele talvez
tenha lhe deixado na mão neste pequeno instante mas ele te surpreenderá com
o tempo... Este problema é para o software meptext?
Post by Marcos Elias
Sussa. Mas não retiro uma palavra do que disse. Se soubesse eu
implementaria, mas colocar mais POG onde já tem um monte... Melhor esperar
mesmo.
Post by Daniel S. Almeida
**
Quem fala o que quer... ouve o que nao quer...
Eu so tenho elogios para o Lazarus e sua equipe... mas se vc nao esta
contente... deixe ele de lado... simples assim...
OpenSource somente é recomendado para quem está disposto a por a mão na
massa.... se quer "reclamar com o fabricante" use uma solução comercial
(Ex: Delphi)
Daniel S.Almeida
Sent from my Kindle Fire
------------------------------
*Sent:* Mon Dec 17 15:45:26 GMT-03:00 2012
*Subject:* Re: [lazarus-br] Nome de arquivos com caracteres acentuados
Quer dizer que devo tratar o Lazarus como um deus, é proibido criticá-lo
e encarar os problemas só por ser de graça e tal? Essa lista já foi mais
receptiva...
Sou entusiasta de software livre, mas se algo se propõe a fazer algo, no
mínimo tem que funcionar... Se até hoje não corrigiram isso (apesar de ter
passado da versão 1.0), sinal de que não estão nem aí pro problema... Ainda
mais considerando criação de aplicativos voltados a todos os tipos de
usuários.
Se isso consolar, o Delphi apresentava um problema semelhante, não sei
como está hoje (mas nunca passei por isso nas ferramentas da MS mesmo).
Post by Marcos Elias
Post by Daniel Simões de Almeida
"Fica difícil levar o Lazarus a sério assim, se nem um tratamento
nativo dos
Post by Daniel Simões de Almeida
caminhos dos arquivos ele fornece =/"
Comentário pejorativo totalmente desnecessário.. Dificilmente você
conseguirá ajuda dessa maneira...
O Lazarus é um projeto sério e maduro, e mantido por ótimos
desenvolvedores
Post by Daniel Simões de Almeida
(alguns dos melhores que já vi)..
Nossa empresa usa o Lazarus em 100% de sua linha de novos produtos...
www.djpdv.com.br
Se o Delphi atende as suas necessidades porque tentar mudar para
Lazarus ??
Perfeito.
Marcos Douglas
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
Para cancelar a sua inscrição neste grupo, envie um e-mail para
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
Para cancelar a sua inscrição neste grupo, envie um e-mail para
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
Para cancelar a sua inscrição neste grupo, envie um e-mail para
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
Para cancelar a sua inscrição neste grupo, envie um e-mail para
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
lazarus-br-/***@public.gmane.org
Para cancelar a sua inscrição neste grupo, envie um e-mail para
lazarus-br+unsubscribe-/***@public.gmane.org
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
Marcos Douglas
2012-12-17 16:55:42 UTC
Permalink
Received: by 10.180.77.49 with SMTP id p17mr1360739wiw.0.1355763343160;
Mon, 17 Dec 2012 08:55:43 -0800 (PST)
X-BeenThere: lazarus-br-/***@public.gmane.org
Received: by 10.180.91.46 with SMTP id cb14ls1276475wib.10.gmail; Mon, 17 Dec
2012 08:55:42 -0800 (PST)
X-Received: by 10.180.91.114 with SMTP id cd18mr3259869wib.2.1355763342758;
Mon, 17 Dec 2012 08:55:42 -0800 (PST)
X-Received: by 10.180.91.114 with SMTP id cd18mr3259868wib.2.1355763342748;
Mon, 17 Dec 2012 08:55:42 -0800 (PST)
Received: from mail-wi0-f178.google.com (mail-wi0-f178.google.com [209.85.212.178])
by gmr-mx.google.com with ESMTPS id ex17si100920wid.3.2012.12.17.08.55.42
(version=TLSv1/SSLv3 cipher=OTHER);
Mon, 17 Dec 2012 08:55:42 -0800 (PST)
Received-SPF: neutral (google.com: 209.85.212.178 is neither permitted nor denied by best guess record for domain of md-***@public.gmane.org) client-ip 9.85.212.178;
Received: by mail-wi0-f178.google.com with SMTP id hn3so2072564wib.5
for <lazarus-br-/***@public.gmane.org>; Mon, 17 Dec 2012 08:55:42 -0800 (PST)
Received: by 10.180.82.170 with SMTP id j10mr16965569wiy.2.1355763342375; Mon,
17 Dec 2012 08:55:42 -0800 (PST)
Received: by 10.217.42.197 with HTTP; Mon, 17 Dec 2012 08:55:42 -0800 (PST)
In-Reply-To: <CAMc-6Wqcp_NmJBmjWrOM6Xt7uHt1EF+P4+9EQCYXBjE_TxnrGw-JsoAwUIsXosN+***@public.gmane.org>
X-Gm-Message-State: ALoCoQnoTvhIv+x1N61rqqdMj8whOLrAN0Dv+vMilN4pKjy5opZ7E3XKqJR7D7ylBBq0i3bjogFY
X-Original-Sender: md-***@public.gmane.org
X-Original-Authentication-Results: gmr-mx.google.com; spf=neutral (google.com:
209.85.212.178 is neither permitted nor denied by best guess record for
domain of md-***@public.gmane.org) smtp.mail=md-***@public.gmane.org
Precedence: list
Mailing-list: list lazarus-br-/***@public.gmane.org; contact lazarus-br+owners-/***@public.gmane.org
List-ID: <lazarus-br.googlegroups.com>
X-Google-Group-Id: 135462973133
List-Post: <http://groups.google.com/group/lazarus-br/post?hl=pt-BR_BR>, <mailto:lazarus-br-/***@public.gmane.org>
List-Help: <http://groups.google.com/support/?hl=pt-BR_BR>, <mailto:lazarus-br+help-/***@public.gmane.org>
List-Archive: <http://groups.google.com/group/lazarus-br?hl=pt-BR_BR>
Sender: lazarus-br-/***@public.gmane.org
List-Subscribe: <http://groups.google.com/group/lazarus-br/subscribe?hl=pt-BR_BR>,
<mailto:lazarus-br+subscribe-/***@public.gmane.org>
List-Unsubscribe: <http://groups.google.com/group/lazarus-br/subscribe?hl=pt-BR_BR>,
<mailto:googlegroups-manage+135462973133+unsubscribe-/***@public.gmane.org>
Archived-At: <http://permalink.gmane.org/gmane.comp.ide.lazarus.brazil/17026>
Post by Marcos Elias
Caramba... Obrigado pelo retorno.
Fica difícil levar o Lazarus a sério assim, se nem um tratamento nativo dos
caminhos dos arquivos ele fornece =/
Amigo, vc entendeu errado.
Cada linguagem, ambiente, etc tem suas particularidades, acertos e
problemas também. Lembre-se que é um projeto OpenSource e gratuito
para todos. Se tem algo que vc acha que não está certo, vai lá e
corrige... criticar assim é que não está certo, ok?
Post by Marcos Elias
Eu tinha esperanças de que ele tinha melhorado muito, estou há um ou 2 anos
parado nisso... Em apps pra usuários finais que rodarão em várias versões do
Windows a coisa complica então.
O Lazarus melhorou MUITO nesses 2 anos que vc fala. Hoje tenho
projetos em produção sem problemas com ele e rodando no Windows.
O programador só tem que saber o que está fazendo. ;-)
Post by Marcos Elias
Será que ninguém até agora desenvolveu uma unit extra com funções para isso,
resolvendo de uma vez por todas os caminhos de arquivos?
Utilize a LazUTF8 para fazer as conversões (ela irá fazer se necessário).
Post by Marcos Elias
Quando voltar a ter um tempinho livre vou ver se crio alguma gambiarra.
Ficar testando em cada chamada ou programa é bem chato.
Este problema ainda persiste pq a equipe procura uma solução que não
quebre (por completo) os programas anteriores.

Marcos Douglas
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
lazarus-br-/***@public.gmane.org
Para cancelar a sua inscrição neste grupo, envie um e-mail para
lazarus-br+unsubscribe-/***@public.gmane.org
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
Wagner Fernandes Silva
2012-12-17 23:17:24 UTC
Permalink
Olá Pessoal

A dica do Marcos Douglas deu resultado e a rotina está funcionando sem
problemas. Obrigado Marcos!!!
por acaso o kylix tem este tipo de problema?
Post by Marcos Elias
Eu não tenho certeza dos passos executados, mas já me bati muito com isso
no passado. As versões atuais do Windows também trabalham com UTF.
Converter pra sys.../ansi não vai causar problema nesses casos? Lembro de
ter tido divergências quando rodei um programa no Windoww XP e no 7,
testando no 7 alguns arquivos com caracteres unicode referentes a outros
idiomas (japonês, chinês, etc). Eles apareciam normalmente no Explorer e
podiam ser abertos na maioria dos programas, exceto os feitos em Delphi ou
Lazarus (ou em alguns antigos, que não sei no que foram feitos).
Se eu usasse a AnsiToUTF8 e UTF8ToAnsi o programa não conseguia abrir
arquivos com acentos no nome nas versões velhas do Windows (2000, XP).
Idem quando precisei carregar arquivos numa stringlist: os arquivos com
caracteres unicode no nome ficavam zuados, dando como caminho inválido ao
tentar chamá-los.
Essa LazUTF8 lida bem com esses casos então?
Vou testar assim que puder.
Post by Marcos Douglas
Post by luciano de souza
A Sysutils possui as funções AnsiToUTF8 e UTF8ToAnsi. Com elas não se
obtém o mesmo resultado? E se não for este o caso, então, não existem
soluções fora da LCL?
Sim, mesmo resultado.
A diferença é que a LazUTF8 é mais "esperta" e só fará a conversão se
necessário (bom para sistemas multiplataforma).
Marcos Douglas
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
Para cancelar a sua inscrição neste grupo, envie um e-mail para
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
Para cancelar a sua inscrição neste grupo, envie um e-mail para
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
lazarus-br-/***@public.gmane.org
Para cancelar a sua inscrição neste grupo, envie um e-mail para
lazarus-br+unsubscribe-/***@public.gmane.org
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
Marcos Douglas
2012-12-17 23:22:55 UTC
Permalink
Post by Wagner Fernandes Silva
Olá Pessoal
A dica do Marcos Douglas deu resultado e a rotina está funcionando sem problemas. Obrigado Marcos!!!
por acaso o kylix tem este tipo de problema?
Ótimo e não sei se o Kylix tem (tinha?) esse problema. Irrelevante
agora né? hehe


Pessoal, aproveitando, vamos parar com a briga, mal entendido, etc.
Bola pra frente.

Abraços
Marcos Douglas
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
lazarus-br-/***@public.gmane.org
Para cancelar a sua inscrição neste grupo, envie um e-mail para
lazarus-br+unsubscribe-/***@public.gmane.org
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
Wagner Fernandes Silva
2013-01-06 22:42:28 UTC
Permalink
Olá Pessoal

Estive fuçando nos arquivos do Lazarus e achei o fileutil.pas, o qual
possui as funções listadas logo mais abaixo.

Então, ao invés de usarmos a seguinte construção:
FileExists (SysToUTF8 ('TEXTO.TXT'));

Podemos usar:
FileExistsUTF8 ('TEXTO.TXT');

Resta saber se existe alguma restrição de uso para estas funções, alguém
sabe dizer?

[]Žs

function FileExistsUTF8(const Filename: string): boolean;
function FileAgeUTF8(const FileName: string): Longint;
function DirectoryExistsUTF8(const Directory: string): Boolean;
function ExpandFileNameUTF8(const FileName: string): string;
function ExpandUNCFileNameUTF8(const FileName: string): string;
function ExtractShortPathNameUTF8(Const FileName : String) : String;
function FindFirstUTF8(const Path: string; Attr: Longint; out Rslt:
TSearchRec): Longint;
function FindNextUTF8(var Rslt: TSearchRec): Longint;
procedure FindCloseUTF8(var F: TSearchrec);
function FileSetDateUTF8(const FileName: String; Age: Longint): Longint;
function FileGetAttrUTF8(const FileName: String): Longint;
function FileSetAttrUTF8(const Filename: String; Attr: longint): Longint;
function DeleteFileUTF8(const FileName: String): Boolean;
function RenameFileUTF8(const OldName, NewName: String): Boolean;
function FileSearchUTF8(const Name, DirList : String; ImplicitCurrentDir :
Boolean = True): String;
function FileIsReadOnlyUTF8(const FileName: String): Boolean;
function GetCurrentDirUTF8: String;
function SetCurrentDirUTF8(const NewDir: String): Boolean;
function CreateDirUTF8(const NewDir: String): Boolean;
function RemoveDirUTF8(const Dir: String): Boolean;
function ForceDirectoriesUTF8(const Dir: string): Boolean;
function FileOpenUTF8(Const FileName : string; Mode : Integer) : THandle;
function FileCreateUTF8(Const FileName : string) : THandle; overload;
function FileCreateUTF8(Const FileName : string; Rights: Cardinal) :
THandle; overload;
Post by Marcos Douglas
Post by Wagner Fernandes Silva
Olá Pessoal
Estou começando no Lazarus agora e estou tendo problemas com arquivos com
caracteres acentuados no nome.
Na linha de código a seguir, a variavel NomeArq "pega" uma string com o nome
de arquivo "Cópia de Arquivo.txt".
NomeArq:= FileListBox1.Items.Strings[i];
NomeArq='C'#195#179'pia de Arquivo.txt'
O problema ocorre quando passo o conteúdo de NomeArq para a API do Windows
para efetuar uma cópia do arquivo e o windows retorna a mensagem de erro
"Não é possível copiar o arquivo. Não é possível ler o arquivo ou disco de
origem."
Existe alguma solução para isso?
SIM.
O Lazarus trabalha com UTF8. O Windows com UCS-2, diferente do Linux
que já trabalha com UTF8.
Vc precisa converter as strings do Lazarus (as informações que vem dos
formulários na sua aplicação) para o unicode que o Windows entenda.
Para tal, utilize a unit LazUTF8. Nela vc encontrará algumas funções,
mas as que vc precisa agora são apenas 2: UTF8ToSys e SysToUTF8.
s := UTF8ToSys(Edit1.Text);
funcaoWindows(s);
s := funcaoWindows;
Edit1.Text := SysToUTF8(s);
Marcos Douglas
PS: o core do FPC já está trabalhando numa solução onde isso não irá
ser necessário, no entanto esta solução só está liberada nos fontes do
/trunk e não é considerada estável, ainda.
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
Para cancelar a sua inscrição neste grupo, envie um e-mail para
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
lazarus-br-/***@public.gmane.org
Para cancelar a sua inscrição neste grupo, envie um e-mail para
lazarus-br+unsubscribe-/***@public.gmane.org
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
Gilson Nunes
2013-01-07 00:04:06 UTC
Permalink
seria:

FileExists (UTF8ToSys ('TEXTO.TXT'));

não?


porém fiz um teste aki e um arquivo com nome:
"Teste♩.ini"

só funcionou com o FileExistsUTF8
Olá Pessoal
Estive fuçando nos arquivos do Lazarus e achei o fileutil.pas, o qual
possui as funções listadas logo mais abaixo.
FileExists (SysToUTF8 ('TEXTO.TXT'));
FileExistsUTF8 ('TEXTO.TXT');
Resta saber se existe alguma restrição de uso para estas funções, alguém
sabe dizer?
[]ÂŽs
function FileExistsUTF8(const Filename: string): boolean;
function FileAgeUTF8(const FileName: string): Longint;
function DirectoryExistsUTF8(const Directory: string): Boolean;
function ExpandFileNameUTF8(const FileName: string): string;
function ExpandUNCFileNameUTF8(const FileName: string): string;
function ExtractShortPathNameUTF8(Const FileName : String) : String;
TSearchRec): Longint;
function FindNextUTF8(var Rslt: TSearchRec): Longint;
procedure FindCloseUTF8(var F: TSearchrec);
function FileSetDateUTF8(const FileName: String; Age: Longint): Longint;
function FileGetAttrUTF8(const FileName: String): Longint;
function FileSetAttrUTF8(const Filename: String; Attr: longint): Longint;
function DeleteFileUTF8(const FileName: String): Boolean;
function RenameFileUTF8(const OldName, NewName: String): Boolean;
Boolean = True): String;
function FileIsReadOnlyUTF8(const FileName: String): Boolean;
function GetCurrentDirUTF8: String;
function SetCurrentDirUTF8(const NewDir: String): Boolean;
function CreateDirUTF8(const NewDir: String): Boolean;
function RemoveDirUTF8(const Dir: String): Boolean;
function ForceDirectoriesUTF8(const Dir: string): Boolean;
function FileOpenUTF8(Const FileName : string; Mode : Integer) : THandle;
function FileCreateUTF8(Const FileName : string) : THandle; overload;
THandle; overload;
Post by Marcos Douglas
Olá Pessoal
Estou começando no Lazarus agora e estou tendo problemas com arquivos
com
Post by Marcos Douglas
caracteres acentuados no nome.
Na linha de código a seguir, a variavel NomeArq "pega" uma string com
o nome
Post by Marcos Douglas
de arquivo "Cópia de Arquivo.txt".
NomeArq:= FileListBox1.Items.Strings[i];
NomeArq='C'#195#179'pia de Arquivo.txt'
O problema ocorre quando passo o conteúdo de NomeArq para a API do
Windows
Post by Marcos Douglas
para efetuar uma cópia do arquivo e o windows retorna a mensagem de
erro
Post by Marcos Douglas
"Não é possível copiar o arquivo. Não é possível ler o arquivo ou
disco de
Post by Marcos Douglas
origem."
Existe alguma solução para isso?
SIM.
O Lazarus trabalha com UTF8. O Windows com UCS-2, diferente do Linux
que já trabalha com UTF8.
Vc precisa converter as strings do Lazarus (as informações que vem dos
formulários na sua aplicação) para o unicode que o Windows entenda.
Para tal, utilize a unit LazUTF8. Nela vc encontrará algumas funções,
mas as que vc precisa agora são apenas 2: UTF8ToSys e SysToUTF8.
s := UTF8ToSys(Edit1.Text);
funcaoWindows(s);
s := funcaoWindows;
Edit1.Text := SysToUTF8(s);
Marcos Douglas
PS: o core do FPC já está trabalhando numa solução onde isso não irá
ser necessário, no entanto esta solução só está liberada nos fontes do
/trunk e não é considerada estável, ainda.
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
Para cancelar a sua inscrição neste grupo, envie um e-mail para
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
lazarus-br-/***@public.gmane.org
Para cancelar a sua inscrição neste grupo, envie um e-mail para
lazarus-br+unsubscribe-/***@public.gmane.org
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
Wagner Fernandes Silva
2013-01-07 00:11:20 UTC
Permalink
não, o certo é SysToUTF8
Se não me engano, SYS refere-se ao sistema (WINDOWS), por não trabalhar com
UTF8
Post by Gilson Nunes
FileExists (UTF8ToSys ('TEXTO.TXT'));
não?
"Teste♩.ini"
só funcionou com o FileExistsUTF8
Olá Pessoal
Estive fuçando nos arquivos do Lazarus e achei o fileutil.pas, o qual
possui as funções listadas logo mais abaixo.
FileExists (SysToUTF8 ('TEXTO.TXT'));
FileExistsUTF8 ('TEXTO.TXT');
Resta saber se existe alguma restrição de uso para estas funções, alguém
sabe dizer?
[]ÂŽs
function FileExistsUTF8(const Filename: string): boolean;
function FileAgeUTF8(const FileName: string): Longint;
function DirectoryExistsUTF8(const Directory: string): Boolean;
function ExpandFileNameUTF8(const FileName: string): string;
function ExpandUNCFileNameUTF8(const FileName: string): string;
function ExtractShortPathNameUTF8(Const FileName : String) : String;
TSearchRec): Longint;
function FindNextUTF8(var Rslt: TSearchRec): Longint;
procedure FindCloseUTF8(var F: TSearchrec);
function FileSetDateUTF8(const FileName: String; Age: Longint): Longint;
function FileGetAttrUTF8(const FileName: String): Longint;
function FileSetAttrUTF8(const Filename: String; Attr: longint): Longint;
function DeleteFileUTF8(const FileName: String): Boolean;
function RenameFileUTF8(const OldName, NewName: String): Boolean;
function FileSearchUTF8(const Name, DirList : String; ImplicitCurrentDir
: Boolean = True): String;
function FileIsReadOnlyUTF8(const FileName: String): Boolean;
function GetCurrentDirUTF8: String;
function SetCurrentDirUTF8(const NewDir: String): Boolean;
function CreateDirUTF8(const NewDir: String): Boolean;
function RemoveDirUTF8(const Dir: String): Boolean;
function ForceDirectoriesUTF8(const Dir: string): Boolean;
function FileOpenUTF8(Const FileName : string; Mode : Integer) : THandle;
function FileCreateUTF8(Const FileName : string) : THandle; overload;
THandle; overload;
Post by Marcos Douglas
Olá Pessoal
Estou começando no Lazarus agora e estou tendo problemas com arquivos
com
Post by Marcos Douglas
caracteres acentuados no nome.
Na linha de código a seguir, a variavel NomeArq "pega" uma string com
o nome
Post by Marcos Douglas
de arquivo "Cópia de Arquivo.txt".
NomeArq:= FileListBox1.Items.Strings[i];
NomeArq='C'#195#179'pia de Arquivo.txt'
O problema ocorre quando passo o conteúdo de NomeArq para a API do
Windows
Post by Marcos Douglas
para efetuar uma cópia do arquivo e o windows retorna a mensagem de
erro
Post by Marcos Douglas
"Não é possível copiar o arquivo. Não é possível ler o arquivo ou
disco de
Post by Marcos Douglas
origem."
Existe alguma solução para isso?
SIM.
O Lazarus trabalha com UTF8. O Windows com UCS-2, diferente do Linux
que já trabalha com UTF8.
Vc precisa converter as strings do Lazarus (as informações que vem dos
formulários na sua aplicação) para o unicode que o Windows entenda.
Para tal, utilize a unit LazUTF8. Nela vc encontrará algumas funções,
mas as que vc precisa agora são apenas 2: UTF8ToSys e SysToUTF8.
s := UTF8ToSys(Edit1.Text);
funcaoWindows(s);
s := funcaoWindows;
Edit1.Text := SysToUTF8(s);
Marcos Douglas
PS: o core do FPC já está trabalhando numa solução onde isso não irá
ser necessário, no entanto esta solução só está liberada nos fontes do
/trunk e não é considerada estável, ainda.
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
Para cancelar a sua inscrição neste grupo, envie um e-mail para
Para ver mais opções, visite este grupo em
http://groups.google.com.br/**group/lazarus-br?hl=pt-BR<http://groups.google.com.br/group/lazarus-br?hl=pt-BR>
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
Para cancelar a sua inscrição neste grupo, envie um e-mail para
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
lazarus-br-/***@public.gmane.org
Para cancelar a sua inscrição neste grupo, envie um e-mail para
lazarus-br+unsubscribe-/***@public.gmane.org
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
Marcos Douglas
2013-01-07 00:54:30 UTC
Permalink
não, o certo é SysToUTF8
Se não me engano, SYS refere-se ao sistema (WINDOWS), por não trabalhar com
UTF8
Se vc estiver utilizando LCL, que trabalha com UTF8, o correto é como
o Gilson falou:
FileExists (UTF8ToSys ('TEXTO.TXT'));

UTF8ToSys irá converter uma string UTF8 para o encode do sistema _SE_
for necessário. No Linux a função não faria a conversão, já que o SO
trabalha com UTF8.

Marcos Douglas
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
lazarus-br-/***@public.gmane.org
Para cancelar a sua inscrição neste grupo, envie um e-mail para
lazarus-br+unsubscribe-/***@public.gmane.org
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
Joel Domingos
2013-01-07 01:26:43 UTC
Permalink
Como faço para uma TStringList salvar no formato Ansi?

Em 6 de janeiro de 2013 20:11, Wagner Fernandes Silva
Post by Wagner Fernandes Silva
não, o certo é SysToUTF8
Se não me engano, SYS refere-se ao sistema (WINDOWS), por não trabalhar
com UTF8
Post by Gilson Nunes
FileExists (UTF8ToSys ('TEXTO.TXT'));
não?
"Teste♩.ini"
só funcionou com o FileExistsUTF8
Olá Pessoal
Estive fuçando nos arquivos do Lazarus e achei o fileutil.pas, o qual
possui as funções listadas logo mais abaixo.
FileExists (SysToUTF8 ('TEXTO.TXT'));
FileExistsUTF8 ('TEXTO.TXT');
Resta saber se existe alguma restrição de uso para estas funções, alguém
sabe dizer?
[]ÂŽs
function FileExistsUTF8(const Filename: string): boolean;
function FileAgeUTF8(const FileName: string): Longint;
function DirectoryExistsUTF8(const Directory: string): Boolean;
function ExpandFileNameUTF8(const FileName: string): string;
function ExpandUNCFileNameUTF8(const FileName: string): string;
function ExtractShortPathNameUTF8(Const FileName : String) : String;
TSearchRec): Longint;
function FindNextUTF8(var Rslt: TSearchRec): Longint;
procedure FindCloseUTF8(var F: TSearchrec);
function FileSetDateUTF8(const FileName: String; Age: Longint): Longint;
function FileGetAttrUTF8(const FileName: String): Longint;
function FileSetAttrUTF8(const Filename: String; Attr: longint): Longint;
function DeleteFileUTF8(const FileName: String): Boolean;
function RenameFileUTF8(const OldName, NewName: String): Boolean;
function FileSearchUTF8(const Name, DirList : String; ImplicitCurrentDir
: Boolean = True): String;
function FileIsReadOnlyUTF8(const FileName: String): Boolean;
function GetCurrentDirUTF8: String;
function SetCurrentDirUTF8(const NewDir: String): Boolean;
function CreateDirUTF8(const NewDir: String): Boolean;
function RemoveDirUTF8(const Dir: String): Boolean;
function ForceDirectoriesUTF8(const Dir: string): Boolean;
function FileOpenUTF8(Const FileName : string; Mode : Integer) : THandle;
function FileCreateUTF8(Const FileName : string) : THandle; overload;
THandle; overload;
Post by Marcos Douglas
Olá Pessoal
Estou começando no Lazarus agora e estou tendo problemas com
arquivos com
Post by Marcos Douglas
caracteres acentuados no nome.
Na linha de código a seguir, a variavel NomeArq "pega" uma string
com o nome
Post by Marcos Douglas
de arquivo "Cópia de Arquivo.txt".
NomeArq:= FileListBox1.Items.Strings[i];
NomeArq='C'#195#179'pia de Arquivo.txt'
O problema ocorre quando passo o conteúdo de NomeArq para a API do
Windows
Post by Marcos Douglas
para efetuar uma cópia do arquivo e o windows retorna a mensagem de
erro
Post by Marcos Douglas
"Não é possível copiar o arquivo. Não é possível ler o arquivo ou
disco de
Post by Marcos Douglas
origem."
Existe alguma solução para isso?
SIM.
O Lazarus trabalha com UTF8. O Windows com UCS-2, diferente do Linux
que já trabalha com UTF8.
Vc precisa converter as strings do Lazarus (as informações que vem dos
formulários na sua aplicação) para o unicode que o Windows entenda.
Para tal, utilize a unit LazUTF8. Nela vc encontrará algumas funções,
mas as que vc precisa agora são apenas 2: UTF8ToSys e SysToUTF8.
s := UTF8ToSys(Edit1.Text);
funcaoWindows(s);
s := funcaoWindows;
Edit1.Text := SysToUTF8(s);
Marcos Douglas
PS: o core do FPC já está trabalhando numa solução onde isso não irá
ser necessário, no entanto esta solução só está liberada nos fontes do
/trunk e não é considerada estável, ainda.
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
Para cancelar a sua inscrição neste grupo, envie um e-mail para
Para ver mais opções, visite este grupo em
http://groups.google.com.br/**group/lazarus-br?hl=pt-BR<http://groups.google.com.br/group/lazarus-br?hl=pt-BR>
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
Para cancelar a sua inscrição neste grupo, envie um e-mail para
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
Para cancelar a sua inscrição neste grupo, envie um e-mail para
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
lazarus-br-/***@public.gmane.org
Para cancelar a sua inscrição neste grupo, envie um e-mail para
lazarus-br+unsubscribe-/***@public.gmane.org
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
Marcos Douglas
2013-01-07 01:35:48 UTC
Permalink
Como faço para uma TStringList salvar no formato Ansi?
Usando Lazarus (LCL) ele já converte todas as TStringLists de
componentes para o formato padrão do SO.
No entanto, se vc usar uma TStringList diretamente, no Windows, vc
deverá converter as informações que vem da LCL (que é UTF8), para ANSI
utilizando UTF8ToSys:

var
s: TStrings;
begin
s := TStringList.Create;
s.Append(UTF8ToSys(Edit1.Text));
s.SaveToFile('info.txt');
s.Free;
end;

Marcos Douglas
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
lazarus-br-/***@public.gmane.org
Para cancelar a sua inscrição neste grupo, envie um e-mail para
lazarus-br+unsubscribe-/***@public.gmane.org
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
Joel Domingos
2013-01-07 01:48:38 UTC
Permalink
Tenho um sistema em Delphi 7 que usa muito TStringList.
Ele lê e gera arquivos, alguns com mais 160.000 linhas.
Tô louco para converter ele pra Lazarus.
Fico um pouco preocupado com a performace, caso seja necessário ficar
convertendo strings.
Post by Marcos Douglas
Como faço para uma TStringList salvar no formato Ansi?
Usando Lazarus (LCL) ele já converte todas as TStringLists de
componentes para o formato padrão do SO.
No entanto, se vc usar uma TStringList diretamente, no Windows, vc
deverá converter as informações que vem da LCL (que é UTF8), para ANSI
var
s: TStrings;
begin
s := TStringList.Create;
s.Append(UTF8ToSys(Edit1.Text));
s.SaveToFile('info.txt');
s.Free;
end;
Marcos Douglas
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
Para cancelar a sua inscrição neste grupo, envie um e-mail para
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
lazarus-br-/***@public.gmane.org
Para cancelar a sua inscrição neste grupo, envie um e-mail para
lazarus-br+unsubscribe-/***@public.gmane.org
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
Marcos Douglas
2013-01-07 01:52:06 UTC
Permalink
Post by Joel Domingos
Tenho um sistema em Delphi 7 que usa muito TStringList.
Ele lê e gera arquivos, alguns com mais 160.000 linhas.
Tô louco para converter ele pra Lazarus.
Fico um pouco preocupado com a performace, caso seja necessário ficar
convertendo strings.
Se vc lê o arquivo diretamente, utilizando LoadFromFile por exemplo,
não há necessidade de conversões.

Marcos Douglas
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
lazarus-br-/***@public.gmane.org
Para cancelar a sua inscrição neste grupo, envie um e-mail para
lazarus-br+unsubscribe-/***@public.gmane.org
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
Joel Domingos
2013-01-07 02:15:57 UTC
Permalink
Fiz uma app de teste para salvar um arquivo com caracteres acentuados,
usando TStringlist. Sem usar um memo.
Quando abro o arquivo no notepad++, ele informa que o arquivo é "ANSI as
UTF-8".
Quando abro arquivos gerados no Delphi 7 no notepad++, ele informa que o
arquivo é "ANSI".

Você disse que o FPC trabalha com as strings no formato Ansi e o Lazarus em
UTF-8.

Existe alguma diretiva de compilação para isso?
Post by Marcos Douglas
Post by Joel Domingos
Tenho um sistema em Delphi 7 que usa muito TStringList.
Ele lê e gera arquivos, alguns com mais 160.000 linhas.
Tô louco para converter ele pra Lazarus.
Fico um pouco preocupado com a performace, caso seja necessário ficar
convertendo strings.
Se vc lê o arquivo diretamente, utilizando LoadFromFile por exemplo,
não há necessidade de conversões.
Marcos Douglas
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
Para cancelar a sua inscrição neste grupo, envie um e-mail para
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
lazarus-br-/***@public.gmane.org
Para cancelar a sua inscrição neste grupo, envie um e-mail para
lazarus-br+unsubscribe-/***@public.gmane.org
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
Marcos Douglas
2013-01-07 12:07:35 UTC
Permalink
Post by Joel Domingos
Post by Marcos Douglas
Post by Joel Domingos
Tenho um sistema em Delphi 7 que usa muito TStringList.
Ele lê e gera arquivos, alguns com mais 160.000 linhas.
Tô louco para converter ele pra Lazarus.
Fico um pouco preocupado com a performace, caso seja necessário ficar
convertendo strings.
Se vc lê o arquivo diretamente, utilizando LoadFromFile por exemplo,
não há necessidade de conversões.
Fiz uma app de teste para salvar um arquivo com caracteres acentuados,
usando TStringlist. Sem usar um memo.
Quando abro o arquivo no notepad++, ele informa que o arquivo é "ANSI as
UTF-8".
Pode enviar o exemplo?
Post by Joel Domingos
Quando abro arquivos gerados no Delphi 7 no notepad++, ele informa que o
arquivo é "ANSI".
O Delphi é diferente... melhor nos atermos aos testes com FPC/Lazarus.
Post by Joel Domingos
Você disse que o FPC trabalha com as strings no formato Ansi e o Lazarus em
UTF-8.
O FPC inteiro é ANSI e o Lazarus trabalha com UTF-8.
O Lazarus usa suas próprias funções com prefixo/sufixo "UTF8" para não
utilizar a RTL diretamente, por ser ANSI.
Post by Joel Domingos
Existe alguma diretiva de compilação para isso?
Sim, existe, mas isso está sendo trabalhado mais no trunk e não na
versão atual, estável. É propenso a erros... complexo ainda.

Marcos Douglas
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
lazarus-br-/***@public.gmane.org
Para cancelar a sua inscrição neste grupo, envie um e-mail para
lazarus-br+unsubscribe-/***@public.gmane.org
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
Joel Domingos
2013-01-08 03:42:28 UTC
Permalink
Desculpe a demora, tive problemas com a internet.

Abaixo segue um trecho de código:

procedure TForm1.Button1Click(Sender: TObject);
var arq:TStrings;
begin
arq := TStringList.Create;
try
arq.Add('Teste');
arq.Add('Teste de acentuação');
arq.Add('Crase à');
arq.Add('Agudo á');
arq.Add('Circunflexo â');
arq.SaveToFile(ChangeFileExt(ParamStr(0), '.txt'));
finally
arq.Free;
end;
ShowMessage('Operação realizado com sucesso');
end;
Post by Marcos Douglas
Post by Joel Domingos
Post by Marcos Douglas
Post by Joel Domingos
Tenho um sistema em Delphi 7 que usa muito TStringList.
Ele lê e gera arquivos, alguns com mais 160.000 linhas.
Tô louco para converter ele pra Lazarus.
Fico um pouco preocupado com a performace, caso seja necessário ficar
convertendo strings.
Se vc lê o arquivo diretamente, utilizando LoadFromFile por exemplo,
não há necessidade de conversões.
Fiz uma app de teste para salvar um arquivo com caracteres acentuados,
usando TStringlist. Sem usar um memo.
Quando abro o arquivo no notepad++, ele informa que o arquivo é "ANSI as
UTF-8".
Pode enviar o exemplo?
Post by Joel Domingos
Quando abro arquivos gerados no Delphi 7 no notepad++, ele informa que o
arquivo é "ANSI".
O Delphi é diferente... melhor nos atermos aos testes com FPC/Lazarus.
Post by Joel Domingos
Você disse que o FPC trabalha com as strings no formato Ansi e o Lazarus
em
Post by Joel Domingos
UTF-8.
O FPC inteiro é ANSI e o Lazarus trabalha com UTF-8.
O Lazarus usa suas próprias funções com prefixo/sufixo "UTF8" para não
utilizar a RTL diretamente, por ser ANSI.
Post by Joel Domingos
Existe alguma diretiva de compilação para isso?
Sim, existe, mas isso está sendo trabalhado mais no trunk e não na
versão atual, estável. É propenso a erros... complexo ainda.
Marcos Douglas
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
Para cancelar a sua inscrição neste grupo, envie um e-mail para
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
lazarus-br-/***@public.gmane.org
Para cancelar a sua inscrição neste grupo, envie um e-mail para
lazarus-br+unsubscribe-/***@public.gmane.org
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
Gilson Nunes
2013-01-08 11:30:22 UTC
Permalink
uma solução rápida seria:

vc criar um helper:


unit UHelperStrings;

{$mode objfpc}{$H+}

interface

uses
Classes, SysUtils;

type

{ THelperStrings }

THelperStrings = class helper for TStrings
public
function Add(const s : string) : Integer;
end;

implementation

uses FileUtil;

{ THelperStrings }

function THelperStrings.Add(const s : string) : Integer;
begin
Result := inherited Add(UTF8ToSys(s));
end;

end.


***************
e nas suas units vc add essa unit, q automaticamente o Add de qq TStrings
passaria a usar o UTF8ToSys
tipo:

uses
UHelperStrings;

procedure TForm1.Button1Click(Sender: TObject);
var arq:TStrings;
begin
arq := TStringList.Create;
try
arq.Add('Teste');
arq.Add('Teste de acentuação');
arq.Add('Crase à');
arq.Add('Agudo á');
arq.Add('Circunflexo â');
arq.SaveToFile(ChangeFileExt(ParamStr(0), '.txt'));
finally
arq.Free;
end;
ShowMessage('Operação realizado com sucesso');
end;
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
lazarus-br-/***@public.gmane.org
Para cancelar a sua inscrição neste grupo, envie um e-mail para
lazarus-br+unsubscribe-/***@public.gmane.org
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
Marcos Douglas
2013-01-08 11:34:13 UTC
Permalink
Post by Joel Domingos
Desculpe a demora, tive problemas com a internet.
procedure TForm1.Button1Click(Sender: TObject);
var arq:TStrings;
begin
arq := TStringList.Create;
try
arq.Add('Teste');
arq.Add('Teste de acentuação');
arq.Add('Crase à');
arq.Add('Agudo á');
arq.Add('Circunflexo â');
arq.SaveToFile(ChangeFileExt(ParamStr(0), '.txt'));
finally
arq.Free;
end;
ShowMessage('Operação realizado com sucesso');
end;
Sim, vc está correto.
O porque disso está aqui:
http://wiki.freepascal.org/LCL_Unicode_Support#UTF8_and_source_files_-_the_missing_BOM

Se vc salva um source com char não-ANSI a IDE salva este arquivo como
UTF-8. Assim, ao gravar esses chars no arquivo vc está salvando UTF-8.
Para este caso vc deveria utilizar arq.Text := UTF8ToSys(texto).

A dica do Gilson tb é muito boa.

Marcos Douglas
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
lazarus-br-/***@public.gmane.org
Para cancelar a sua inscrição neste grupo, envie um e-mail para
lazarus-br+unsubscribe-/***@public.gmane.org
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
Sérgio Guedes
2013-01-07 02:24:47 UTC
Permalink
Eu fiz a poucos dias um projeto que manipula arquivos com lazarus e usei
tudo que terminar com UFT8 e funcionou perfeitamente também.



Sérgio Guedes



De: lazarus-br-/***@public.gmane.org [mailto:lazarus-br-/***@public.gmane.org] Em nome
de Wagner Fernandes Silva
Enviada em: domingo, 6 de janeiro de 2013 18:42
Para: lazarus-br-/***@public.gmane.org
Assunto: Re: [lazarus-br] Nome de arquivos com caracteres acentuados





Olá Pessoal

Estive fuçando nos arquivos do Lazarus e achei o fileutil.pas, o qual
possui as funções listadas logo mais abaixo.

Então, ao invés de usarmos a seguinte construção:
FileExists (SysToUTF8 ('TEXTO.TXT'));

Podemos usar:
FileExistsUTF8 ('TEXTO.TXT');

Resta saber se existe alguma restrição de uso para estas funções, alguém
sabe dizer?



[]Žs



function FileExistsUTF8(const Filename: string): boolean;
function FileAgeUTF8(const FileName: string): Longint;
function DirectoryExistsUTF8(const Directory: string): Boolean;
function ExpandFileNameUTF8(const FileName: string): string;
function ExpandUNCFileNameUTF8(const FileName: string): string;
function ExtractShortPathNameUTF8(Const FileName : String) : String;
function FindFirstUTF8(const Path: string; Attr: Longint; out Rslt:
TSearchRec): Longint;
function FindNextUTF8(var Rslt: TSearchRec): Longint;
procedure FindCloseUTF8(var F: TSearchrec);
function FileSetDateUTF8(const FileName: String; Age: Longint): Longint;
function FileGetAttrUTF8(const FileName: String): Longint;
function FileSetAttrUTF8(const Filename: String; Attr: longint): Longint;
function DeleteFileUTF8(const FileName: String): Boolean;
function RenameFileUTF8(const OldName, NewName: String): Boolean;
function FileSearchUTF8(const Name, DirList : String; ImplicitCurrentDir :
Boolean = True): String;
function FileIsReadOnlyUTF8(const FileName: String): Boolean;
function GetCurrentDirUTF8: String;
function SetCurrentDirUTF8(const NewDir: String): Boolean;
function CreateDirUTF8(const NewDir: String): Boolean;
function RemoveDirUTF8(const Dir: String): Boolean;
function ForceDirectoriesUTF8(const Dir: string): Boolean;
function FileOpenUTF8(Const FileName : string; Mode : Integer) : THandle;
function FileCreateUTF8(Const FileName : string) : THandle; overload;
function FileCreateUTF8(Const FileName : string; Rights: Cardinal) :
THandle; overload;
Post by Marcos Douglas
Post by Wagner Fernandes Silva
Olá Pessoal
Estou começando no Lazarus agora e estou tendo problemas com arquivos com
caracteres acentuados no nome.
Na linha de código a seguir, a variavel NomeArq "pega" uma string com o nome
de arquivo "Cópia de Arquivo.txt".
NomeArq:= FileListBox1.Items.Strings[i];
NomeArq='C'#195#179'pia de Arquivo.txt'
O problema ocorre quando passo o conteúdo de NomeArq para a API do Windows
para efetuar uma cópia do arquivo e o windows retorna a mensagem de erro
"Não é possível copiar o arquivo. Não é possível ler o arquivo ou disco de
origem."
Existe alguma solução para isso?
SIM.
O Lazarus trabalha com UTF8. O Windows com UCS-2, diferente do Linux
que já trabalha com UTF8.
Vc precisa converter as strings do Lazarus (as informações que vem dos
formulários na sua aplicação) para o unicode que o Windows entenda.
Para tal, utilize a unit LazUTF8. Nela vc encontrará algumas funções,
mas as que vc precisa agora são apenas 2: UTF8ToSys e SysToUTF8.
s := UTF8ToSys(Edit1.Text);
funcaoWindows(s);
s := funcaoWindows;
Edit1.Text := SysToUTF8(s);
Marcos Douglas
PS: o core do FPC já está trabalhando numa solução onde isso não irá
ser necessário, no entanto esta solução só está liberada nos fontes do
/trunk e não é considerada estável, ainda.
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
Para cancelar a sua inscrição neste grupo, envie um e-mail para
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
lazarus-br-/***@public.gmane.org
Para cancelar a sua inscrição neste grupo, envie um e-mail para
lazarus-br+unsubscribe-/***@public.gmane.org
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
lazarus-br-/***@public.gmane.org
Para cancelar a sua inscrição neste grupo, envie um e-mail para
lazarus-br+unsubscribe-/***@public.gmane.org
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
Joel Domingos
2013-01-07 02:43:14 UTC
Permalink
Eu gostaria de garantir que o arquivo fosse gerado no formato Ansi, pq os
arquivos gerados são posteriormente processados por um sistema bancário.

Não sei como esse sistema bancário iria tratar um arquivo com caracteres em
UTF-8
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
lazarus-br-/***@public.gmane.org
Para cancelar a sua inscrição neste grupo, envie um e-mail para
lazarus-br+unsubscribe-/***@public.gmane.org
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
Gilson Nunes
2013-01-07 11:30:49 UTC
Permalink
mas eu creio q vc tem q fazer essa conversão se o string ta vindo de um
origem utf8.
pq o string é só um string, uma sequencia de bytes de 8 bits cada.
Post by Joel Domingos
Eu gostaria de garantir que o arquivo fosse gerado no formato Ansi, pq os
arquivos gerados são posteriormente processados por um sistema bancário.
Não sei como esse sistema bancário iria tratar um arquivo com caracteres
em UTF-8
--
Você recebeu esta mensagem porque está inscrito no Grupo "Lazarus-BR"
nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
lazarus-br-/***@public.gmane.org
Para cancelar a sua inscrição neste grupo, envie um e-mail para
lazarus-br+unsubscribe-/***@public.gmane.org
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/lazarus-br?hl=pt-BR
Loading...