Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   [решено] запись в файл (http://forum.oszone.net/showthread.php?t=182051)

Viruss 03-08-2010 15:18 1466023

запись в файл
 
надо открыть файл для записи, извлець строку в поле 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 1466160

Цитата:

Цитата Viruss
char Put; »

надо Put[200] хотя бы

Viruss 05-08-2010 12:36 1467328

а как записать строку в файл из поля edit?

pva 05-08-2010 18:27 1467596

Вариантов море, компилятор фантазию не ограничивает
Код:

// 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

// и т.д.



Время: 14:57.

Время: 14:57.
© OSzone.net 2001-