Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.90/68: Рейтинг темы: голосов - 68, средняя оценка - 4.90
141 / 110 / 30
Регистрация: 20.04.2011
Сообщений: 581
1

Чтение\запись файла

21.06.2011, 10:00. Показов 13004. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как в 6 Билдере читать построчно файл, содержащий текст (наверно в лучше в string или char*?), и потом записывать строки в другой файл построчно (т.е. в итоге из первого файла я получу какую-то строку типа "Программирование на "Borland Builder 6"." Как потом в один файл записать "Программирование на ", а в другой ""Borland Builder 6"."? при этом в обоих должно перейти на новую строку для записи следующих строк)
Путь к файлам получаю с помощью OpenDialog в edit1/2/3
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.06.2011, 10:00
Ответы с готовыми решениями:

Чтение/запись из файла
Здравствуйте! Такой вот вопрос: есть файл,который мы читаем, он представляет из себя массив...

Запись и чтение из файла
В общем, есть код, с помощью которого мы сохраняем полный путь к треку в файл и потом считываем...

Запись и чтение файла
Здравствуйте. Странно ведет себя тестовая программа, которая записывает данные в файл и из него...

Запись и чтение из файла C++
Всем привет! У меня есть файл .b (Сохранение для GTA 3). Мне нужно написать простенький редактор...

9
return (true);
1976 / 1111 / 221
Регистрация: 19.04.2011
Сообщений: 2,345
21.06.2011, 10:16 2
Получить список строк
C++
1
2
 TStringList *list = new TStringList;
 list->LoadFromFile(OpenDialog1->FileName);
А дальше делите строки как пожелаете
0
141 / 110 / 30
Регистрация: 20.04.2011
Сообщений: 581
21.06.2011, 10:28  [ТС] 3
Эм...Так в list же запишется вся строка из файла выше. А как потом разделить ее на две? В гугле что-то не нашел как это сделать.
И можно пример записи оттуда в файл?
0
return (true);
1976 / 1111 / 221
Регистрация: 19.04.2011
Сообщений: 2,345
21.06.2011, 10:33 4
Цитата Сообщение от Nubik756 Посмотреть сообщение
Как в 6 Билдере читать построчно файл, содержащий текст
Считали построчно. Этот код я привёл выше
Цитата Сообщение от Nubik756 Посмотреть сообщение
и потом записывать строки в другой файл построчно
C++
1
list->SaveToFile(SaveDialog1->FileName);
Цитата Сообщение от Nubik756 Посмотреть сообщение
Как потом в один файл записать "Программирование на ", а в другой ""Borland Builder 6"."?
По какому принципу вы хотите делить эту строку?
0
141 / 110 / 30
Регистрация: 20.04.2011
Сообщений: 581
21.06.2011, 11:19  [ТС] 5
До первого встретившегося знака " в первый файл и от него до второго " во второй файл. Если второго знака нету, то конец строки во втором файле (чтобы след. строка была с новой строки).

Добавлено через 28 минут
ой, точнее конец строки в любом случае в обоих файлах. Только в первом может быть еще текст в той же строке(если он есть соответственно в той же строке после второго ").

Добавлено через 11 минут
т.е. еще раз:
есть файл с содержимым такого типа:
Код
Программирование на "Borland Builder 6".
Программирование на "Borland Builder 6" — это легко!
Программирование на "Borland Builder 6 IDE
фывапролдж
"йцукенг"
Нужно разделить это на 2 файла.
1 файл:
Код
Программирование на .
Программирование на — это легко!
Программирование на 
фывапролдж
2 файл:
Код
Borland Builder 6
Borland Builder 6
Borland Builder 6 IDE
йцукенг
0
return (true);
1976 / 1111 / 221
Регистрация: 19.04.2011
Сообщений: 2,345
21.06.2011, 11:37 6
Цитата Сообщение от Nubik756 Посмотреть сообщение
Нужно разделить это на 2 файла
А если там кавычек будет больше?
0
141 / 110 / 30
Регистрация: 20.04.2011
Сообщений: 581
21.06.2011, 11:48  [ТС] 7
Как больше?

Программирование на "Borland Builder 6 ". "Borland Builder 6"
Программирование на .
Borland Builder 6 Borland Builder 6



Вообще особо замороченных проверок содержимого не требуется.
0
return (true);
1976 / 1111 / 221
Регистрация: 19.04.2011
Сообщений: 2,345
21.06.2011, 12:06 8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 TStringList *srcfile = new TStringList;
 TStringList *file1 = new TStringList;
 TStringList *file2 = new TStringList;
 srcfile->LoadFromFile(OpenDialog1->FileName);
 AnsiString curr, s1, s2;
 int len;
 bool flag=false;
 for (int t=0;t<srcfile->Count;t++)
 {
  curr = srcfile->Strings[t];
  len=curr.Length();
  s1=""; s2="";
  for (int i=1;i<=len;i++)
  {
   if (curr[i]=='\"') flag=!flag;
   else
   {
    if (flag) s2=s2+curr[i];
    else s1=s1+curr[i];
   }
  }
  file1->Add(s1);
  file2->Add(s2);
 }
file1->SaveToFile("file1.txt"); // Ну или через диалог
file2->SaveToFile("file2.txt");
2
141 / 110 / 30
Регистрация: 20.04.2011
Сообщений: 581
21.06.2011, 13:07  [ТС] 9
Спасибо.
А почему тут начинается с 1?
for (int i=1;i<=len;i++)
Вроде же все строки начинаются с 0.
0
LK
Заблокирован
21.06.2011, 14:56 10
Цитата Сообщение от Nubik756 Посмотреть сообщение
А почему тут начинается с 1?
Вроде же все строки начинаются с 0.
если массив строк - с 0 , если символы в строке - с 1 .
1
21.06.2011, 14:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.06.2011, 14:56
Помогаю со студенческими работами здесь

Запись / Чтение из файла
пробовал и TStringStream, и TStringList все равно 1 символ выводит... Сначала я записываю в этот...

Запись и чтение с файла
Здраствуйте! Есть такая структура: struct Elem {AnsiString Name; int poinyX; int pointY; ...

Запись и чтение из файла строковой переменной
Перехожу и Builder6 на XE. исправил кучу ошибок. в одном не могу развобраться. вот пример:...

Чтение/запись определенного количества байт из бинарного файла
Подскажите пожалуста как реализовать на с++ в RAD Studio чтение определенного количества байт из...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru