Dark Elf |
Отправлено: 12.09.2003, 13:52 |
|
Не зарегистрирован
|
Уважаемые господа!
Как мне в С++ билдере прочесть из текстового файла строки произвольной длины?
Заранее благодарен за ответ |
|
Dima |
Отправлено: 12.09.2003, 15:37 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 61
|
CODE |
fstream inout("fstream.out");
char p[100];
inout.seekg(0);
//прочитать строку до знака \n\r но не более 100 символов
inout.getline(p,100);
| |
|
Schumi |
Отправлено: 12.09.2003, 16:30 |
|
Машинист паровоза
Группа: Участник
Сообщений: 206
|
Попробуй через TStringList. Есть метод LoadFromFile и потом обращаешься к строке через свойство Strings[0]
Или попробуй FileRead и FileOpen
|
|
Иван |
Отправлено: 12.09.2003, 16:34 |
|
Машинист паровоза
Группа: Участник
Сообщений: 207
|
Смотря для чего, ну в смысле зависит от задачи ,
может достаточно будет использовать LoadFromFile,
или другой способ в стиле C++ Builder.
-----
Shumi опередил меня на 4 мин
Отредактировано Иван — 12/09/2003, 17:38
|
|
Nimble |
Отправлено: 14.09.2003, 12:35 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 34
|
Вот кусок кода из моей проги, может пригодится:
CODE |
AnsiString ErrFileName=ExtractFilePath(ParamStr(0))+"Errors.log";
int hErrFile; //указатель на файл.
//тут создаем или открываем файл
if (!FileExists(ErrFileName))
hErrFile=FileCreate(ErrFileName);
else
hErrFile=FileOpen(ErrFileName, fmOpenReadWrite);
//производим запись в файл.
//параметры: указатель на файл, строка, длинна строки
FileWrite(hErrFile, ErrMsg.c_str(), ErrMsg.Length());
//Устанавливаем/получам смещение
//параметры: указатель на файл, длинна, октуда (0-с начала, 1-с текущего смещения, 2-с конца файла)
int iFSeek=FileSeek(hErrFile, 0, 2);
if (iFSeek>0xFFFF)
{
char buff[0x7FF]; int i;
iFSeek=FileSeek(hErrFile, -0x7FF, 2);
//читаем данные из файла (перед этим устанавливаем нужное нам смещение)
//параметры: ук.на.ф., строка, длинной ...
FileRead(hErrFile, buff, iFSeek);
for(i=0; (i<0x7FF)&&(buff[i]!='<'); i++);
FileSeek(hErrFile, iFSeek+i, 0);
FileRead(hErrFile, buff, 0x7FF-i);
//Закрываем файл
FileClose(hErrFile);
//Удаляем
DeleteFile(ErrFileName);
hErrFile=FileCreate(ErrFileName);
FileWrite(hErrFile, buff, 0x7FF-i);
}
FileClose(hErrFile);
|
ну вот вроде всё, что нужно. Извени, было лень вырезать, не относящееся к вопросу, только комментарии добавил. |
|
|