Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Helpik (С++Builder) Гость
|
Добавлено: Вт Апр 15 2003 14:41 Заголовок сообщения: Уважаемые програмисты, помогите примерчиком...... |
|
|
Как считать с текстового файла информацию в поле мемо, так чтоб брался определенный кусок до определенного символа. (Скажем, считать все до символа "||", или первые 200 символов. только) Очень нужно, никак не разберусь как. |
|
Вернуться к началу |
|
|
Борис Гость
|
Добавлено: Вт Апр 15 2003 15:32 Заголовок сообщения: Re: Уважаемые програмисты, помогите примерчиком...... |
|
|
примерно так: -------------------- char buf[201]; int i=0; int c; FILE*fi=fopen("имя_файла", "rb"); c=fgetc(fi); while(!((c == -1) || (c == '||')) && (i |
|
Вернуться к началу |
|
|
Борис Гость
|
Добавлено: Вт Апр 15 2003 15:38 Заголовок сообщения: Забыл, что тут знак "меньше" не известен. Повторяю. |
|
|
примерно так: -------------------- char buf[201]; int i=0; int c; FILE*fi=fopen("имя_файла", "rb"); c=fgetc(fi); while(!((c == -1) || (c == '||')) && (i < 200)) { buf[i++]=(char)c; c=fgetc(fi); } if((c == '||')&& (i < 200)buf[i++]=(char)c; buf[i]='\0'; fclose(fi); ---------- ---------- результат в buf[] |
|
Вернуться к началу |
|
|
Helpik (С++Builder) Гость
|
Добавлено: Ср Апр 16 2003 11:27 Заголовок сообщения: Re: Забыл, что тут знак "меньше" не известен. Повторяю. |
|
|
а как сделать чтоб: считать все из файла, но там где стоит "-" поставить перевод сторки. если не ошибаюсь это "/n/r"
Мне нужно поместить в компонент "RadioGroup" все из файла. как это сделать? разделяю названия я в текстовом файле символом "-" все без пробелов. |
|
Вернуться к началу |
|
|
Борис Гость
|
Добавлено: Чт Апр 17 2003 11:58 Заголовок сообщения: Re: Забыл, что тут знак "меньше" не известен. Повторяю. |
|
|
>>а как сделать чтоб: >> считать все из файла, но там где стоит "-" поставить перевод сторки. если не ошибаюсь это "/n/r"
В C++ достаточно использовать '\n', компилятор сам учтет '\r\n' в нужных местах, но для этого нужно файл открывать с аргументом "r" или "w" (без "b"), хотя в твоем случае это, по-видимому, не играет роли. Если же открывать с аргументом "b" (то есть "rb" или "wb"), то нужно ставить '\r\n' принудительно, хотя при использовании высокоуровневых функций (fprintf/fget* вместо fwrite/fread) они в некоторых случаях сами об этом позаботятся. Вообще, (моя) общая рекомендация такая: при открытии файла в двоичном режиме (то есть с аргументом "b") использовать функции fread/fwrite и все символы отслеживать самостоятельно, а при открытии файла в текстовом режиме (то есть с аргументом "a" или без этой буквы) использовать функции fget*/fprintf и не заботиться о действительном способе окончания строки.
А твоя программа звучит примерно так: -------------------- FILE*fi=fopen("имя_файла", "rb"); fseek(fi,0,SEEK_END); size_t i=ftell(fi); char*buf=new char[i+1]; fseek(fi,0,SEEK_SET); fread((void*)buf,1,i,fi); buf[i]='\0'; for(char*p0=buf;*p;p++) if(*p=='-') *p='\n'; fclose(fi); ---------- ---------- результат в buf[] по окончании программы сделать delete[] buf;
>> Мне нужно поместить в компонент "RadioGroup" все из файла.
Не знаю, что это за компонент, но, вероятно, свойству, являющемуся списком элементов списка, присвоить значение buf, хотя по уму должна быть компонентная функция, заносящая значения из текстовой строки в компонент. |
|
Вернуться к началу |
|
|
Helpik (С++Builder) Гость
|
Добавлено: Пт Апр 18 2003 10:03 Заголовок сообщения: ОГРОМНОЕ СПАСИБО ЗА ОТВЕТЫ!!! |
|
|
. |
|
Вернуться к началу |
|
|
|