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

Сравнение символьного массива с содержимым текстового файла

04.04.2014, 19:03. Показов 1163. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Суть задачи вот в чём:
Есть символьный массив (char Mas[5000]), содержащий, например, "Hello world !".
Также есть файл, содержащий "Hello-Привет;day-день;table-стол".
Необходимо осуществить поиск "тегов" "Hello", "Day" и "Table" в строке "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
//---------------------------------------------------------------------------
 
#include <iostream.h>
#include <fstream.h>
#include <conio.h>
#include <vcl.h>
#pragma hdrstop
 
//---------------------------------------------------------------------------
 
#pragma argsused
int main(int argc, char* argv[])
{
char Stroka1[5000],Stroka2[5000],KeyCodeSymbol;
int KeyCode=0,StringLength=0;
getch();
while(KeyCode!=13){
KeyCodeSymbol=getch();
KeyCode=(int)KeyCodeSymbol;
if(KeyCode!=13) cout<<KeyCodeSymbol;
Stroka1[StringLength-1]=KeyCodeSymbol;}   //Ввели массив
 
ifstream File1;
File1.open("SystemFile1.dat",ios::in);
int Label1=0;
while (!File1.eof())
{
File1.get(Stroka2[Label1]);
Label1++;
}
File1.close();                            //Считали из файла в массив
 
        return 0;
}
Что делать теперь ?
Должно работать вот так:
1.Сравниваем строки в массивах "Hello world !" и "Hello-Привет;day-день;table-стол".
2.Получаем одинаковые символы "Hello" в обеих строках.
3.После "Hello" в строке из файла, между "-" и ";" находится "Привет"
4.Занести "Привет" в файл

P.S.
Если входную строку заменить, к примеру, на "Helloday tabhle", то в файле должно оказаться
C++
1
2
Привет
день
поскольку "Helloday tabhle" содержит фрагменты как "Hello", так и "day", а "table" там нету.

Заранее спасибо за помощь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.04.2014, 19:03
Ответы с готовыми решениями:

Сравнение введенного текста с содержимым текстового файла
Мне нужно сделать так, чтобы тот текст который ты ввёл за $pass сравнивало текст с pass.txt, как...

Создание текстового файла с нужным содержимым
Как это реализовать? Вообще, я знаю 2 способа создать файл - ECHO ... &gt; file.txt И copy con...

Заполнение ячеек StringGrid содержимым текстового файла
Здравствуйте, при решении данного задания: 1)Возможность открыть текстовый файл - заполнить ячейки...

Чтение файла с сервера и сравнение с содержимым TextBox
добрый день совсем не знаю как сделать.. допустим у меня на сервере есть файл любой...

3
Почетный модератор
Эксперт С++
5850 / 2861 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
07.04.2014, 09:28 2
Цитата Сообщение от prog63 Посмотреть сообщение
1.Сравниваем строки в массивах "Hello world !" и "Hello-Привет;day-день;table-стол".
2.Получаем одинаковые символы "Hello" в обеих строках.
3.После "Hello" в строке из файла, между "-" и ";" находится "Привет"
Легче положить каждый список в свой StringList, а потом перебирать элементы и сравнивать.
0
260 / 192 / 60
Регистрация: 12.05.2013
Сообщений: 857
07.04.2014, 16:26 3
Вот написал примерно то что имел ввиду SatanaXIII, код не совсем удовлетворяет Ваши конечные требования, но если повернуть его в обратную сторону, Вы получите то что хотите, пока гляньте на это, может что то придумаете...
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
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
TStringList *SL=new TStringList;
TStringList *Rez=new TStringList;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Memo1->Lines->LoadFromFile("C:\\File.txt") ;
SL->DelimitedText=Memo1->Text;
Memo2->Text=SL->Text;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Rez->DelimitedText=Edit1->Text;
for (int i=0; i<Rez->Count; i++)
{
for (int j=0; j<SL->Count; j++)
{
if (SL->Strings[j].Pos(Rez->Strings[i]))
{
SL->Strings[j].AnsiPos("-");
Memo3->Lines->Add(SL->Strings[j].SubString((SL->Strings[j].AnsiPos("-")+1),(SL->Strings[j].Length())));
}
}
}
}
Миниатюры
Сравнение символьного массива с содержимым текстового файла  
1
2 / 2 / 1
Регистрация: 24.11.2013
Сообщений: 77
05.05.2014, 22:09  [ТС] 4
demon_7, Да, действительно, можно было сделать со списками, просто изначально я хотел сделать консольную программу. А за код огромное спасибо

Добавлено через 29 минут
Вот еще одна тема : Посимвольное считывание из файла в char-массив
Никак не могу сделать в консоли
0
05.05.2014, 22:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.05.2014, 22:09
Помогаю со студенческими работами здесь

Как сравнить логин и пароль с содержимым текстового файла
При входе в личный кабинет: require_once('data.php'); $err = ''; if (isset($_POST) &amp;&amp;...

Сравнение элементов символьного массива
Есть символьный массив А, состоящий из 729 строк и 15 столбцов, который скачивается из файла. Есть...

Как содержимое одного текстового файла дописать содержимым другого?
Вечер добрый. Напишите пожалуйста как из одно текстового файла все строки дописать во второй...

Блок схема для проги, выполняющей создание символьного файла их текстового, с последующей сортировкой
прога на паскале есть, а нужна блок схема uses crt; var f:text; g:file of char; ...


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

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