Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
bodya_men
Нарушитель
44 / 52 / 7
Регистрация: 01.07.2014
Сообщений: 998
Завершенные тесты: 3
#1

Простой парсер - как перебрать варианты строки - C++

26.07.2014, 19:16. Просмотров 1054. Ответов 6
Метки нет (Все метки)

Всем привет!Опыт программирования на си++ всего месяц-c# около 4 а делфи один год.Решил их кинуть(c# и делфи) и писать все на си++.Если что я 12 летний школьник поэтому обьясните попонятней.VCL знаю неплохо-про инклуды и не говорите-давайте сразу код.Ну хватит тут анкету писать, вот сам и впопрос.Я пишу простенький парсер,не знаю как перебрать варианты строки.Вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <vcl.h>
#include <iostream.h>
String parsefile(String  fnametoparse){
     TFileStream * sf = new TFileStream(fnametoparse,fmOpenRead);
     TReader * r = new TReader(sf,sf->Size);
     TStrings * srcstring;
 cout << "Parser32.Parsing lines...";
 while(fEof){
 srcstring->Add( r->ReadString());
 }
 switch(srcstring->Strings[1]){
 case "TextMessage.Show":
  cout << "Find messagebox.Writing...";
  break;
 default:
 cout << "This method has been not found!";
 break;
   }
}
и еще вопросик-если не известно количество строк-как можно проверить все строки сразу.Чтото подсказует что без for(бла бла) не обойтись
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.07.2014, 19:16
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Простой парсер - как перебрать варианты строки (C++):

Перебрать все варианты двумерного массива(рекурсия) - C++
Например, дан массив 5x5, каждый элемент которого может принимать значения от 1 до 9. Как рекурсивно перебрать все варианты?

Как в цикле перебрать все элементы отдельного столбца или строки? - C++
Подскажите как такой цикл пробегается по элементам? for (i=1;i&lt;9;i++) for(j=1;j&lt;9;j++) по скрину подскажите как...

Простой парсер - C++
По идее, программа должна справа налево пробегать каждый символ введенной строки и переводить их в числа, если встречается &quot;+&quot; или &quot;-&quot;...

Методы принимают в качестве аргумента простой указатель, как тогда меняется содержимое строки? - C++
Уже &quot;достали&quot; указатели, недавно разбирал односвязный список и там для того, чтобы изменить значение указателя в функцию передавали...

Все возможные варианты перестановки символов строки - C++
Дана строка s, состоящая из n символ (n меньше 6) составить все возможные варианты перестановки этих символов (язык C)

Программа выводящая разные варианты построения строки - C++
Хочу попробовать написать программу, в которой вводишь какие-либо символы, а эти символы выстраиваются в различные варианты и выводятся на...

6
Jupiter
Каратель
Эксперт С++
6559 / 3980 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
26.07.2014, 19:20 #2
Цитата Сообщение от bodya_men Посмотреть сообщение
C++
1
TStrings * srcstring;
память кто будет выделять?

Добавлено через 1 минуту
Цитата Сообщение от bodya_men Посмотреть сообщение
C++
1
case "TextMessage.Show":
switch не работает со строками
1
Ryuk
179 / 177 / 33
Регистрация: 10.06.2011
Сообщений: 871
26.07.2014, 19:24 #3
Цитата Сообщение от bodya_men Посмотреть сообщение
как можно проверить все строки сразу
Цитата Сообщение от bodya_men Посмотреть сообщение
без for(бла бла) не обойтись
Вроде так.
1
bodya_men
Нарушитель
44 / 52 / 7
Регистрация: 01.07.2014
Сообщений: 998
Завершенные тесты: 3
26.07.2014, 19:38  [ТС] #4
Спс, но как тогда сделать все же построчное распознавание?Может через цикл?

Добавлено через 54 секунды
сори, new забыл, просто это подключаемый cpp модуль.
0
Renji
1927 / 1325 / 299
Регистрация: 05.06.2014
Сообщений: 3,823
27.07.2014, 01:34 #5
Спс, но как тогда сделать все же построчное распознавание?Может через цикл?
Ну, в порядке выпендрежа:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
using namespace std;
 
int main()
{
    const std::vector<std::string>list{"zero","one","two","three"};
    switch(std::find(list.begin(),list.end(),"three")-list.begin())
    {
    case 0:cout<<"zero"<<endl;break;
    case 1:cout<<"one"<<endl;break;
    case 2:cout<<"two"<<endl;break;
    case 3:cout<<"three"<<endl;break;
    }
    return 0;
}
0
Bend3r
149 / 136 / 18
Регистрация: 29.07.2012
Сообщений: 709
27.07.2014, 03:15 #6
Switch очень хорошо работает с enum. Вот небольшой пример:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
enum Test {
TextMessage, TextMessage2, TextMessage3
};
 
main(void)
{
Test lol;
lol = TextMessage;
switch(lol) {
case TextMessage: cout << "123" << endl; 
break;
case TextMessage2: cout << "1234" << endl;
break;
//и так далее
}
0
bodya_men
Нарушитель
44 / 52 / 7
Регистрация: 01.07.2014
Сообщений: 998
Завершенные тесты: 3
13.08.2014, 15:01  [ТС] #7
спс, щас мне не до парсеров.Я на кодеблоксе.
0
13.08.2014, 15:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.08.2014, 15:01
Привет! Вот еще темы с ответами:

Как перебрать числа - C++
Есть три переменные - a, b, c. Надо чтобы на их места по очереди вставали все целые числа, то есть чтобы в процессе участвовали все...

парсер строки - C++
Народ, помогите, плиз! проблема такая : сперва считываю строку из файла string value; getline (file, value, '\n'); ...

Как перебрать поля структуры? - C++
возможно ли это в с++ ? (c# - GetFields)

Как перебрать (UINT_MAX + 1) элемент? - C++
for(unsigned int b(UINT_MAX); ++b != UINT_MAX;) // или так: for(unsigned int b(0); b != UINT_MAX; ++b) кому как нравиться,...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru