Problema com TOpenDialog e fopen()
Estou usando a versão grátis Turbo Explorer
Toda vez que eu chamo o Execute() de um objeto TOpenDialog, as funções de arquivo param de funcionar. fopen() não retorna falha, mas não cria arquivo, e as outras funções (fwrite, fprintf, fputc) não fazem nada
OBSERVAÇÃO: Isso só acontece quando eu clico no botão ´Abrir´ de um diálogo TOpenDialog. Se eu clicar no botão Cancelar ou fechar o diálog esse bug não acontece. Minha opinião é que o botão ´Abrir´ do TOpenDialog está fazendo mais doque apenas settar a AnsiString FileName para o nome do arquivo selecionado
Toda vez que eu chamo o Execute() de um objeto TOpenDialog, as funções de arquivo param de funcionar. fopen() não retorna falha, mas não cria arquivo, e as outras funções (fwrite, fprintf, fputc) não fazem nada
OBSERVAÇÃO: Isso só acontece quando eu clico no botão ´Abrir´ de um diálogo TOpenDialog. Se eu clicar no botão Cancelar ou fechar o diálog esse bug não acontece. Minha opinião é que o botão ´Abrir´ do TOpenDialog está fazendo mais doque apenas settar a AnsiString FileName para o nome do arquivo selecionado
G-flip
Curtidas 0
Respostas
G-flip
05/03/2009
Por exemplo
Quando o diálogo de abrir arquivo aparecer, se eu clicar no botão ´Cancelar´ ou fechar o diálogo, a parte em negrito funcionara. Mas se eu selecionar um arquivo e apertar o botão ´Abrir´ a parte em negrito não funcionara
[/code]
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
OpenDialog1->Execute();
[b]FILE *fp;
fp=fopen("lolhhhhhhh.txt", "wb+");
fprintf(fp, "testee");
fclose(fp);[/b]
LabeledEdit2->SetTextBuf(OpenDialog1->FileName.c_str());
}Quando o diálogo de abrir arquivo aparecer, se eu clicar no botão ´Cancelar´ ou fechar o diálogo, a parte em negrito funcionara. Mas se eu selecionar um arquivo e apertar o botão ´Abrir´ a parte em negrito não funcionara
[/code]
GOSTEI 0
Rodc
05/03/2009
O OpenDialog muda o caminho padrão do sistema para o caminho do arquivo que foi aberto. Quando você inicia o sistema o caminho padrão é o do executável.
Por isso, sempre que for abrir um arquivo, deve passar o caminho completo do aruqivo. Exemplo:
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
OpenDialog1->Execute();
[b:bb9c2cdd0a]FILE *fp;
fp=fopen((ParamStr(0) + ´lolhhhhhhh.txt´).c_str(), ´wb+´);
fprintf(fp, ´testee´);
fclose(fp);[/b:bb9c2cdd0a]
LabeledEdit2->SetTextBuf(OpenDialog1->FileName.c_str());
}
Por isso, sempre que for abrir um arquivo, deve passar o caminho completo do aruqivo. Exemplo:
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
OpenDialog1->Execute();
[b:bb9c2cdd0a]FILE *fp;
fp=fopen((ParamStr(0) + ´lolhhhhhhh.txt´).c_str(), ´wb+´);
fprintf(fp, ´testee´);
fclose(fp);[/b:bb9c2cdd0a]
LabeledEdit2->SetTextBuf(OpenDialog1->FileName.c_str());
}
GOSTEI 0