Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Помогите с написанием программы


Автор: IZY 4.2.2010, 09:36
Помогите написать программу"Прямой поиск строки".
Её нужно оформить в С++ Builder 
Суть : дан текст (при открытии выводится в поле Мемо1) - открываем текст при помощи Button1    и   OpenDialog, мы вводим искомое слово (в поле Еdit1) , потом при нажатии Button2 начинается поиск слова.
Первый вход этого слова в текст должен быть подсвечен(выделен).
Если кто-то делал эту программу или если кто может сделать ПОМОГИТЕ пожалуйста !!! Я в безвыходе , у самого ничего не получается завтра нада сдать программу ... 
Заранее благодарю !

Автор: Dimitriy 4.2.2010, 11:36
какой именно билдел 5, 6, 2006)?

используй Pos("ass") для поиска слова ass, SelStart и SelLength для выделения

Автор: Данкинг 4.2.2010, 12:09
Код

void __fastcall TForm1::Button1Click(TObject *Sender)
{
if (OpenDialog1->Execute())
 {
  Memo1->Lines->LoadFromFile(OpenDialog1->FileName);
 }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
  if (Pos(Edit1->Text,Memo1->Text)!=0)
    {
     Memo1->SelStart=Pos(Trim(Edit1->Text),Memo1->Text)-1;
     Memo1->SelLength=Edit1->Text.Length()+1;
    }
  else ShowMessage("Не найдено!");
}

Автор: IZY 4.2.2010, 17:00
Цитата

void __fastcall TForm1::Button1Click(TObject *Sender)
{
if (OpenDialog1->Execute())
 {
  Memo1->Lines->LoadFromFile(OpenDialog1->FileName);
 }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
  if (Pos(Edit1->Text,Memo1->Text)!=0)
    {
     Memo1->SelStart=Pos(Trim(Edit1->Text),Memo1->Text)-1;
     Memo1->SelLength=Edit1->Text.Length()+1;
    }
  else ShowMessage("Не найдено!");
}


Она не работает.

Добавлено через 12 минут и 5 секунд
Цитата

какой именно билдел 5, 6, 2006)?


В 6 нужно

Автор: Данкинг 4.2.2010, 17:45
Цитата(IZY @  4.2.2010,  17:00 Найти цитируемый пост)
Она не работает.

Она работает. smile 

Автор: IZY 4.2.2010, 18:20
Постучи мне в асю : 371958477 или найди в Скайпе : xxIZYxx 

Автор: IZY 4.2.2010, 21:07
Цитата

Она не работает.

Она работает. smile 



Выдаёт ошибку : [C++ Error] Unit1.cpp(29): E2268 Call to undefined function 'Pos'

Автор: Данкинг 4.2.2010, 23:20
Цитата(IZY @  4.2.2010,  21:07 Найти цитируемый пост)
Call to undefined function 'Pos' 

Ну, не знаю: стандартная функция. Выложи весь свой проект, посмотрим.

Автор: IZY 4.2.2010, 23:29
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
if (OpenDialog1->Execute())
 {
  Memo1->Lines->LoadFromFile(OpenDialog1->FileName);
 }
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)
{
 if (Pos(Edit1->Text,Memo1->Text)!=0)
    {
     Memo1->SelStart=Pos(Trim(Edit1->Text),Memo1->Text)-1;
     Memo1->SelLength=Edit1->Text.Length()+1;
    }
  else ShowMessage("Не найдено!");
}
//---------------------------------------------------------------------------

Добавлено через 12 минут и 46 секунд
371958477 - это моя ася , найди меня плс...Так будет проще. 

Автор: Данкинг 4.2.2010, 23:58
Я про проект, а ты мне мой собственный код выкладываешь. smile 

Цитата(IZY @  4.2.2010,  23:29 Найти цитируемый пост)
371958477 - это моя ася , найди меня плс...Так будет проще.  

Ну нет у меня аси! Точнее, есть, но я года 3 уже не юзал.

Автор: IZY 5.2.2010, 00:06
Может у тя есть Скайп ? 
Тебе именно тему сказать и что программа должна делать ?

Добавлено через 9 минут и 9 секунд
Кстати , а у тебя программа нормально функционирует ??

Автор: artsb 5.2.2010, 00:37
Цитата(IZY @  4.2.2010,  17:00 Найти цитируемый пост)
Она не работает.

Пробуй так:
Код

void __fastcall TForm1::Button1Click(TObject *Sender)
{
if (OpenDialog1->Execute())
 {
  Memo1->Lines->LoadFromFile(OpenDialog1->FileName);
 }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
  int iPos;
  AnsiString temp = Edit1->Text.Trim();
  iPos = Memo1->Text.Pos(temp);
  if (iPos!=0)
    {
     Memo1->SelStart = iPos-1;
     Memo1->SelLength = temp.Length();
     Memo1->SetFocus();
    }
  else ShowMessage("Не найдено!");
}

100% работает.

Автор: Данкинг 5.2.2010, 00:39
 smile 
В аттаче проект. Чуть подправленный (не Text.Length()+1, а Text.Length()).

Автор: Данкинг 5.2.2010, 00:40
<...>

Автор: IZY 5.2.2010, 00:51
ехе не открывается , говорит не найдено что-то ...
и когда запускаю проект через билдер - бьёт ошибку 
[Linker Error] Unresolved external '_Form1' referenced from C:\DOCUMENTS AND SETTINGS\ADMIN\РАБОЧИЙ СТОЛ\TEST\TEST.OBJ

Автор: Данкинг 5.2.2010, 01:03
Цитата(IZY @  5.2.2010,  00:51 Найти цитируемый пост)
ехе не открывается , говорит не найдено что-то ...

А, ну это понятно, я же соответствующие галочки не снял. smile 

Цитата(IZY @  5.2.2010,  00:51 Найти цитируемый пост)
и когда запускаю проект через билдер - бьёт ошибку 

А что мешает самому сделать форму, на неё кинуть две кнопки, OpenDialog, Edit, Memo, и нажатиям на кнопки прописать нужный код? smile 

Автор: IZY 5.2.2010, 01:04
Запускаю test.exe он говорит : Приложению не удалось запуститься, поскольку vc100.bpl yе был найден. Повторная установка может исправить эту проблему.
Что это ?
Извени если я тебе надоел , сам понимаю со мной ща много мороки , но кроме тебя мне никто не поможет.

Добавлено через 1 минуту и 37 секунд
Я это сделал , но мне выбивает ошибку Pos, я не понимаю что это твориться =*(

Автор: IZY 5.2.2010, 01:35
Спасибо тебе огромное !!! Ты не представляешь как я тебе благодарен !!! Ещё раз огромное спасибо !!!

Автор: Данкинг 5.2.2010, 02:24
IZY, на здоровье. Отметь тему решённой. smile 

Автор: IZY 5.2.2010, 03:10
Отметил. 
Ещё раз ОГРОМНОЕ СПАСИБО !!!  smile 

Автор: artsb 5.2.2010, 08:37
Цитата(IZY @  5.2.2010,  01:04 Найти цитируемый пост)
но кроме тебя мне никто не поможет.

Блин, и нафиг я писал....

ТС очки одень!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)