Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
 Аватар для prog63
2 / 2 / 1
Регистрация: 24.11.2013
Сообщений: 77

Считать данные из файла, строки с символом ";" - разбить

11.05.2014, 22:04. Показов 1319. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Программа должна считать данные из файла, строки с символом ";" разбить:
Кликните здесь для просмотра всего текста
(Пример)
"Hello;World
!"
=
"Hello
World
!"

А затем записать обратно в файл.
Сделал программу:
Кликните здесь для просмотра всего текста
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
//---------------------------------------------------------------------------
#include <fstream.h>
#include <iostream.h>
#include <conio.h>
#include <vcl.h>
#pragma hdrstop
//---------------------------------------------------------------------------
 
#pragma argsused
//Modules:
//Language Module: (buf=25600;syntax:"Print(label);")
char* Print(const char* text)
{
char bufPrint[25600];
CharToOem(text, bufPrint);
cout<<bufPrint;
delete bufPrint;
return 0;
}
//---------------------------------------------------------------------------
int main(int argc, char* argv[])
{
cout<<"LineDiv 1.0\nMade by Prog63 Corp. 2013-2014\nAll rights reserved\n"<<endl;
char* FileInName="file1.dat";
char* FileOutName="file2.dat";
if (!FileExists(FileInName)){Print("Ошибка !\nФайл \"");Print(FileInName);Print("\" не найден !");getch();exit(0);}
Print("Имя файла :");Print(FileInName);
Print("\nСчитывание файла (1 из 3)...");
int FileIn=FileOpen(FileInName,fmOpenRead);
int finsize=FileSeek(FileIn,0,2);
char *BufferIn=new char[finsize];
FileSeek(FileIn,0,0);
FileRead(FileIn, BufferIn, finsize);
FileClose(FileIn);
Print("\n Файл считан. (");cout<<finsize;Print(" симв.)");
Print("\nСтроковое деление (2 из 3)...");
int CreateLinesCount=0,LinesCount=0;
for (int reg=0;reg<=finsize;reg++){if ((int)BufferIn[reg]==59){BufferIn[reg]=(char)10;CreateLinesCount+=1;} if ((int)BufferIn[reg]==10){LinesCount+=1;}}
Print("\n Строк создано :");cout<<CreateLinesCount;
Print("\n Всего строк   :");cout<<LinesCount;
Print("\nСоздание файла (3 из 3)...");
//if (FileExists(FileOutName)){std:remove(FileOutName);}
//std:remove(FileOutName);
ofstream FileOut;
FileOut.open(FileOutName,ios::app);
int regold=0;
for(int reg=0;reg<=finsize;reg++){if((int)BufferIn[reg]=='\n'){char* BufferOut=new char[reg-regold];
for(int reg2=0;reg2<reg-regold;reg2++){BufferOut[reg2]=BufferIn[reg2+regold];}
regold=reg;
FileOut<<BufferOut;
delete BufferOut;
}}
FileOut.close();
Print("\n Файл создан");
        return 0;
}
//---------------------------------------------------------------------------

Ошибок не выдает, но и не работает надлежащим образом:
Кликните здесь для просмотра всего текста

Например, вместо
C++
1
2
3
4
5
6
7
8
9
10
int Number1=0,Number2=0,reg1=0,NOD=1;
bool bool1=false,bool2=false;
cout<<"Vvedite 1 chislo:";cin>>Number1;
cout<<"Vvedite 2 chislo:";cin>>Number2;
if (Number1>Number2) reg1=Number1; else reg1=Number2;
for (int reg=1;reg<=reg1;reg++){
if (((Number1%reg==0)&&((Number2%reg)==0)))NOD=reg;
bool bool1=false,bool2=false;}
cout<<"NOD of "<<Number1<<" and "<<Number2<<" is "<<NOD;
getch();
(забил в файл свою программу как пример), выдает такую белиберду:
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
27
28
29
30
31
32
int Number1=0,Number2=0,reg1=0,NOD=1
 
 
bool bool1=false,bool2=false
 
ool bool1=false,bool2=false
cout<<"Vvedite 1 chislo:"
cin>>Number1alse,bool2=false
 
in>>Number1alse,bool2=false
cout<<"Vvedite 2 chislo:"
cin>>Number2alse,bool2=false
 
in>>Number2alse,bool2=false
if (Number1>Number2) reg1=Number1
 else reg1=Number2ool2=false
 
else reg1=Number2ool2=false
for (int reg=1ber2ool2=false
reg<=reg1reg=1ber2ool2=false
reg++){
1reg=1ber2ool2=false
if (((Number1%reg==0)&&((Number2%reg)==0)))NOD=reg
 
f (((Number1%reg==0)&&((Number2%reg)==0)))NOD=reg
bool bool1=false,bool2=falseber2%reg)==0)))NOD=reg
}
ol bool1=false,bool2=falseber2%reg)==0)))NOD=reg
cout<<"NOD of "<<Number1<<" and "<<Number2<<" is "<<NOD
 
out<<"NOD of "<<Number1<<" and "<<Number2<<" is "<<NOD
getch()NOD of "<<Number1<<" and "<<Number2<<" is "<<NOD

Бьюсь уже почти месяц

Заранее спасибо
Вложения
Тип файла: rar Programm.rar (222.9 Кб, 2 просмотров)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.05.2014, 22:04
Ответы с готовыми решениями:

Считать данные из файла и разбить строки на массив строк
Доброго времени суток. Возникла такая трабла - нужно считать следующий массив строк: Toyota Supra Black 280 80 Toyota Chaser Black 280...

Дан файл из символов. Считать данные из файла и найти количество пробелов, стоящих перед символом “;”
Дан файл из символов. Считать данные из файла и найти количество пробелов, стоящих перед символом “;”.

Как считать данные из файла с заданной строки?
Доброго времени суток, ребята! Подскажите пожалуйста, можно ли с помощью объекта класса StreamReader как-нибудь считывать данные не с...

3
return (true);
 Аватар для mimicria
1977 / 1112 / 221
Регистрация: 19.04.2011
Сообщений: 2,346
12.05.2014, 08:26
Я вроде говорил, что со строками будет удобнее
C++
1
2
3
4
5
6
7
8
 TStringList *text = new TStringList();
 TStringList *newtext = new TStringList();
 text->LoadFromFile("c:\\1.txt");
 newtext->Delimiter=';';
 newtext->DelimitedText=text->Text;
 newtext->SaveToFile("c:\\2.txt");
 delete text;
 delete newtext;
0
 Аватар для prog63
2 / 2 / 1
Регистрация: 24.11.2013
Сообщений: 77
12.05.2014, 18:46  [ТС]
mimicria,
Я пробовал такой код, но он разбивает строки еще и по пробелам
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33395 / 21505 / 8236
Регистрация: 22.10.2011
Сообщений: 36,902
Записей в блоге: 12
12.05.2014, 20:01
prog63, поиском пользоваться не пробовал?

Не работает Delimiter
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.05.2014, 20:01
Помогаю со студенческими работами здесь

Считать данные из файла от одной строки до другой
Всем привет. Задача такая: есть текстовый файл, в котором существует двумерный массив, записано все в файле так Step number= 1 ...

Считать все строки из файла и занести данные в RichTextBox
int i = 0; string f = File.ReadAllLines(&quot;Resalt.dat&quot;); string j = f.Split(new char { ',' }); richTextBox1.Text = j; ...

Как считать данные из txt файла, из определенной строки,столбца?
i=0 Do Until EOF(2) Line Input #2, mytext Dannie(i)=mytext i=i+1 loop Наверняка необязательно заполнять массив...

Как считать строки с символом новой строки?
Здравствуйте. мне нужно скопировать/вставить в консоль n-ое количество строк, каждая из которых заканчивается символом новой строки: ...

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


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru