Problema com TOpenDialog e fopen()

05/03/2009

0

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


G-flip

G-flip

Responder

Posts

05/03/2009

G-flip

Por exemplo

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]


Responder

06/03/2009

Rodc

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());
}


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar