Войти

Показать полную графическую версию : [решено] запись в файл


Viruss
03-08-2010, 15:18
надо открыть файл для записи, извлець строку в поле edit, и изменив ее, перезаписать в тот же файл...
файл состоит из одной строки...

//пишу следующее...

char Put;
int maxpt;
FILE *f;
maxpt=10000;
f=fopen("adr.txt","r+");
fgets(Put,maxpt,f);
PutFTP->Text=Put;
fclose(f);

//выдает такие ошибки:
[C++ Error] Unit4.cpp(24): E2034 Cannot convert 'int' to 'char *'
[C++ Error] Unit4.cpp(24): E2342 Type mismatch in parameter '__s' (wanted 'char *', got 'char')

pva
03-08-2010, 18:49
char Put; »
надо Put[200] хотя бы

Viruss
05-08-2010, 12:36
а как записать строку в файл из поля edit?

pva
05-08-2010, 18:27
Вариантов море, компилятор фантазию не ограничивает

// 1)
// строка + перевод строки
fwrite(edit->Text.c_str(), edit->Text.Length(), 1, f) == 1 && fwrite("\r\n", 2, 1, f) == 1

// 2)
// строка + конечный 0
fwrite(edit->Text.c_str(), edit->Text.Length() + 1, 1, f) == 1

// 3)
// длина + строка
unsigned length = edit->Text.Length();
fwrite(&length, sizeof(length), 1, f) == 1 && fwrite(edit->Text.c_str(), edit->Text.Length(), 1, f) == 1

// 4)
// XML
unsigned length = edit->Text.Length();
fwrite("<text>", 6, 1, f) == 1 && fwrite(edit->Text.c_str(), edit->Text.Length(), 1, f) == 1 && fwrite("</text>", 7, 1, f) == 1

// и т.д.




© OSzone.net 2001-2012