Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.03.2012, 16:01   #1
woodik
Новичок
Джуниор
 
Регистрация: 26.03.2012
Сообщений: 3
По умолчанию открытие и редактирование файла с++ билдер

Привет всем.
Задание:открыть файл и посчитать сколько в файле слов , состоящих более чем из 4 букв.
Код:
void __fastcall TForm1::Button1Click(TObject *Sender)
{int l,k,n,a;
char c=' ';
AnsiString f;
if (OpenDialog1->Execute())RichEdit1->Lines->LoadFromFile(OpenDialog1->FileName);
f=RichEdit1->Lines->Text;

l=f.Length();
n=0;
k=0;
for (int i=n;i<l;i++)
if (f[i]==c)
{
a=i-n;
if (a>4)(k++);
n=i;
}
Edit1->Text=IntToStr(l);
}
Подскажите пожалуйста в чем проблема?

Последний раз редактировалось woodik; 26.03.2012 в 16:17.
woodik вне форума Ответить с цитированием
Старый 27.03.2012, 13:16   #2
woodik
Новичок
Джуниор
 
Регистрация: 26.03.2012
Сообщений: 3
По умолчанию

все еще актуально....
woodik вне форума Ответить с цитированием
Старый 27.03.2012, 14:46   #3
Krok27
Форумчанин
 
Аватар для Krok27
 
Регистрация: 08.07.2010
Сообщений: 505
По умолчанию

Код:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
	int more_than_four = 0, count_words =0;

AnsiString f;
if (OpenDialog1->Execute())RichEdit1->Lines->LoadFromFile(OpenDialog1->FileName);
f=RichEdit1->Lines->Text;

std::vector<char> tmp;
tmp.reserve(20);
for(int i=1;i<f.Length();++i)
{
	if(f[i] != ' ')
		tmp.push_back(f[i]);
	else
	{
		if(tmp.size() > 4)
			++more_than_four;
		tmp.clear();
		++count_words;
	}

}
if(!tmp.empty())
{
	++count_words;
	if(tmp.size() > 4)
	{
		++more_than_four;
	}
}

Edit1->Text=IntToStr(more_than_four) + " " +IntToStr(count_words) ;
}
Знающий не говорит, говорящий не знает (С) Лао Цзы
Krok27 вне форума Ответить с цитированием
Старый 27.03.2012, 15:40   #4
woodik
Новичок
Джуниор
 
Регистрация: 26.03.2012
Сообщений: 3
По умолчанию

Цитата:
std::vector<char> tmp;
tmp.reserve(20);
что это?
Цитата:
tmp.push_back(f[i]);
и это ?
woodik вне форума Ответить с цитированием
Старый 27.03.2012, 16:28   #5
Krok27
Форумчанин
 
Аватар для Krok27
 
Регистрация: 08.07.2010
Сообщений: 505
По умолчанию

Код:
std::vector<char> tmp
- это STL массив char-ов.

Код:
tmp.push_back(f[i]);
- помещение в массив элемента
Знающий не говорит, говорящий не знает (С) Лао Цзы
Krok27 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Редактирование текстового файла Pahanuch C# (си шарп) 1 14.02.2012 16:32
Редактирование файла ресурсов Alex2009 Общие вопросы Delphi 4 02.07.2009 01:10
Открытие файла и создание графика на основе чисел из файла Simon..14 Общие вопросы C/C++ 8 09.06.2009 10:18
Редактирование файла Лубышев Помощь студентам 4 04.03.2009 12:18
Редактирование файла в цикле Var17 Общие вопросы Delphi 1 13.12.2007 14:51