Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с текстовыми файлами, Жилательно ссылки на новичковсую лит-ру 
:(
    Опции темы
Mad
Дата 1.10.2005, 12:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Эксперт
Сообщений: 656
Регистрация: 18.10.2004
Где: Одесса

Репутация: 7
Всего: 19



Цитата(Mayk @ 1.10.2005, 07:19)
b можно опускать. fopen(a,"wb") эквивалентно fopen(a,"w");

это верно не для всех компиляторов (точнее не для всех реализаций CRT либы)


--------------------
user posted image
PM MAIL   Вверх
Zero
Дата 1.10.2005, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: нет
Всего: 24



Цитата(BreakPointMAN @ 1.10.2005, 11:45)
Описание указателя потока *stream у тебя неправильное, ибо тип этой структуры пишется в верхнем регистре:

код C++ Builder
1:
FILE *stream;

Увы видемо было правильное, после такого написания выдаётся вообще вот такая ошибка:
Цитата
[C++ Error] CT.cpp(19): E2451 Undefined symbol 'FILE'

Ну всётаки, те кто разбираются в паскале и С++ одновременно, вы немогли бы мне чёткий (работающий пример показать, след. альтернативе команд, которую я сейчас напишу на делфиsmile
Код

var
  f,f1:textfile;
  str:string;
....
assignfile(f1,'c:\222.txt');  //связать файловую переменную f1 с путём на жёстком диске
rewrite(f1);  //создать файл по адресу 'c:\222.txt'
assignfile(f,'c:\111.txt');  //связать файловую переменную f с др. путём на жёстком диске
reset(f);   //открыть файл по адресу 'c:\111.txt'
read(f,str);  //считать из файла строку
write(f1,str);  //записать в другой файл
.....
close(f)       //закрыть файл

только вы желательно его проверьте, а то я хочу в пошаговом режиме его просмотреть, а если он не будет работать, то визульно по коду, с учётом что я пока в Си не разбираюсь тяжело будет понять как правильно должно быть...
PM MAIL ICQ   Вверх
Mayk
Дата 1.10.2005, 18:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

Репутация: 45
Всего: 134



Код

#include <stdio.h>
int main()
{
   char buf[256]; //для строки
    FILE* fl = fopen("c:\\222.txt","wt"); //создать файл по адресу 'c:\222.txt
    FILE* f=fopen("c:\\111.txt","rt"); //открыть файл по адресу 'c:\111.txt'
    fgets(buf,256,f); //считать строку
    fputs(buf,fl); //записать строку
    fclose(fl); //и закрыть файл 222.txt
    fclose(f); //и закрыть файл 111.txt
}



--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
BreakPointMAN
Дата 1.10.2005, 21:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 15.9.2004
Где: Saratov

Репутация: 14
Всего: 24



Цитата(Zero @ 1.10.2005, 17:13)
Цитата(BreakPointMAN @ 1.10.2005, 11:45)
Описание указателя потока *stream у тебя неправильное, ибо тип этой структуры пишется в верхнем регистре:

код C++ Builder
1:
FILE *stream;

Увы видемо было правильное, после такого написания выдаётся вообще вот такая ошибка:
Цитата
[C++ Error] CT.cpp(19): E2451 Undefined symbol 'FILE'

ну-ну... smile
открываем файл stdio.h, спускаемся чуть ниже по тексту и видим:
Код

/* Definition of the control structure for streams
*/
typedef struct
{
        unsigned char  *curp;       /* Current active pointer     */
        unsigned char  *buffer;     /* Data transfer buffer       */
        int             level;      /* fill/empty level of buffer */
        int             bsize;      /* Buffer size                */
        unsigned short  istemp;     /* Temporary file indicator   */
        unsigned short  flags;      /* File status flags          */
        wchar_t         hold;       /* Ungetc char if no buffer   */
        char            fd;         /* File descriptor            */
        unsigned char   token;      /* Used for validity checking */
}       FILE;                       /* This is the FILE object    */




--------------------
"Разруха не в клозетах, а в головах." © Ф.Ф. Преображенский (М.Булгаков, "Собачье сердце")
PM WWW ICQ   Вверх
Zero
Дата 2.10.2005, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: нет
Всего: 24



А всё, всем спасибо, общие основные принципы работы с текстовыми файлами я понял. smile
Вот только я непонял, зачем нужно было строку писать smile :
Код

int main()

Я работаю на билдере, и на реакцию кнопки я эту строку не ставил, и всё работает...
PM MAIL ICQ   Вверх
BreakPointMAN
Дата 2.10.2005, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 15.9.2004
Где: Saratov

Репутация: 14
Всего: 24



Цитата(Zero @ 2.10.2005, 11:03)
А всё, всем спасибо, общие основные принципы работы с текстовыми файлами я понял. smile
Вот только я непонял, зачем нужно было строку писать smile :
Код

int main()

Я работаю на билдере, и на реакцию кнопки я эту строку не ставил, и всё работает...

это был консольный вариант приложения... в таком случае главная функция программы обзывается main и вызывается при запуске программы... и в твоих обработчиках событий твоих кнопок, ясен фиг, писать ее не надо.


--------------------
"Разруха не в клозетах, а в головах." © Ф.Ф. Преображенский (М.Булгаков, "Собачье сердце")
PM WWW ICQ   Вверх
Zero
Дата 2.10.2005, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: нет
Всего: 24



А-а-а... smile Понятно....
BreakPointMAN тебе тоже спасибо за многократную помощь в ответах на мои вопросы. smile
(держи тоже плюс)
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0749 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.