2 / 2 / 1
Регистрация: 31.03.2013
Сообщений: 220
1

Разбитие текста на константы a и b

30.03.2015, 20:37. Показов 2212. Ответов 17
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый! Нужна помощь в написании скрипта.
Мне нужно сделать так: Вводим текст(Найти: машину) и разбивал на 2 значения a и b a:= "Найти:", а все что после в b!

Я научился находить нужный текст:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
procedure TForm1.Button2Click(Sender: TObject);
var i: Integer;
begin
  for i:=0 to Memo3.Lines.Count-1 do
    begin
      if AnsiPos('Найти:', Memo3.Lines[i])<>0 then
        begin
          memo1.Lines.Add('Найдено в строке №'+IntToStr(i));
          break;
        end;
    end;
end;
Помогите пожалуйста!
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.03.2015, 20:37
Ответы с готовыми решениями:

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

Разбитие текста на строки в python 3.0
Дорогие друзья, помогите, пожалуйста, реализовать разбиение текста на строки определенной длины. ...

Разбитие текста и заполнение таблицы
Привет всем! Помогите пожалуйста с макросом. Нужно преобразовать таблицу в формат подходящий для...

Разбитие одного текста из TextBox1 в TextBox(2,3,4)
У меня есть TextBox1 в который выдается текст из календаря (#пример:21 марта 2016г.)нужно что бы...

17
Native x86
Эксперт Hardware
5520 / 3279 / 934
Регистрация: 13.02.2013
Сообщений: 10,386
30.03.2015, 20:43 2
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
const
  Marker = 'Найти: ';
var
  a, b: string;
  ...
begin
  ...
  if Pos(Marker, Memo.Lines[i]) = 1 then
    begin
      а:= Copy(Memo.Lines[i], 1, Length(Marker));
      b:= Copy(Memo.Lines[i], Length(Marker)+1, MaxInt);
    end;
0
2 / 2 / 1
Регистрация: 31.03.2013
Сообщений: 220
30.03.2015, 20:47  [ТС] 3
Можно с пояснениями?
0
Native x86
Эксперт Hardware
5520 / 3279 / 934
Регистрация: 13.02.2013
Сообщений: 10,386
30.03.2015, 20:50 4
Цитата Сообщение от QvaserZver Посмотреть сообщение
Можно с пояснениями?
Что конкретно не ясно?
0
2 / 2 / 1
Регистрация: 31.03.2013
Сообщений: 220
30.03.2015, 20:53  [ТС] 5
У меня выдает ошибку на этих строчках:

Delphi
1
2
A:= Copy(Memo4.Lines[i], 1, Length(Marker));
B:= Copy(Memo4.Lines[i], Length(Marker)+1, MaxInt);
Поставил в вар i: Integer;
0
226 / 225 / 112
Регистрация: 20.10.2013
Сообщений: 808
30.03.2015, 20:54 6
quwy, погоди, что за бред?
0
Native x86
Эксперт Hardware
5520 / 3279 / 934
Регистрация: 13.02.2013
Сообщений: 10,386
30.03.2015, 20:57 7
Цитата Сообщение от QvaserZver Посмотреть сообщение
У меня выдает ошибку на этих строчках:
Текст ошибки -- военная тайна?

Цитата Сообщение от nestquik2 Посмотреть сообщение
погоди, что за бред?
В чем же бред?
0
2 / 2 / 1
Регистрация: 31.03.2013
Сообщений: 220
30.03.2015, 20:58  [ТС] 8
[Error] TalkBot.pas(111): Illegal character in input file: 'à' ($E0)
[Fatal Error] Project2.dpr(6): Could not compile used unit 'TalkBot.pas'
0
226 / 225 / 112
Регистрация: 20.10.2013
Сообщений: 808
30.03.2015, 20:58 9
Цитата Сообщение от quwy Посмотреть сообщение
if Pos(Marker, Memo.Lines[i]) = 1 then
А если у нас будет такое:
Я хочу найти: машину.
Что сделает твоя функция? Ничего!
0
Native x86
Эксперт Hardware
5520 / 3279 / 934
Регистрация: 13.02.2013
Сообщений: 10,386
30.03.2015, 21:00 10
Цитата Сообщение от QvaserZver Посмотреть сообщение
[Error] TalkBot.pas(111): Illegal character in input file: 'à' ($E0)
Вам перевести?

Вы по-французски код пишите?

Добавлено через 1 минуту
Цитата Сообщение от nestquik2 Посмотреть сообщение
А если у нас будет такое:
Я хочу найти: машину.
Что сделает твоя функция? Ничего!
Я лишь дословно реализовал то, что хотел ТС:
Цитата Сообщение от QvaserZver Посмотреть сообщение
Мне нужно сделать так: Вводим текст(Найти: машину) и разбивал на 2 значения a и b a:= "Найти:", а все что после в b!
0
2 / 2 / 1
Регистрация: 31.03.2013
Сообщений: 220
30.03.2015, 21:02  [ТС] 11
Нет, на другой кодировке

Добавлено через 1 минуту
Я накалякал вот это:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
procedure TForm1.Button3Click(Sender: TObject);
const
  Marker = 'Найти: ';
var
  a, b: string;
  i: Integer;
begin
if Pos(Marker, Memo4.Lines[i]) > 0 then
begin
a:= Copy(Memo4.Lines[i], 1, Length(Marker));
b:= Copy(Memo4.Lines[i], Length(Marker)+1, MaxInt);
memo1.Lines.Add(b);
end;
end;
0
Native x86
Эксперт Hardware
5520 / 3279 / 934
Регистрация: 13.02.2013
Сообщений: 10,386
30.03.2015, 21:03 12
Цитата Сообщение от QvaserZver Посмотреть сообщение
Нет, на другой кодировке
В программном коде в качестве символов идентификаторов извольте использовать только латинские буквы, цифры, и символ подчеркивания, иначе компилятор имеет полное право не понимать вас.
0
2 / 2 / 1
Регистрация: 31.03.2013
Сообщений: 220
30.03.2015, 21:06  [ТС] 13
По существу прошу!

Добавлено через 42 секунды
А если у нас будет такое:
Я хочу найти: машину.
Что сделает твоя функция? Ничего!
Какие у вас мисье есть варианты написания данного кода, что вы критикуете сее писание!?
0
Native x86
Эксперт Hardware
5520 / 3279 / 934
Регистрация: 13.02.2013
Сообщений: 10,386
30.03.2015, 21:06 14
Цитата Сообщение от QvaserZver Посмотреть сообщение
По существу прошу!
Цитата Сообщение от QvaserZver Посмотреть сообщение
Я накалякал вот это:
По какому существу? Где вопрос?
0
2 / 2 / 1
Регистрация: 31.03.2013
Сообщений: 220
30.03.2015, 21:08  [ТС] 15
Вопрос все тот же! Как мне сделать так: (A*)Найти: (B*)машину?

Ваш вариант выдает ошибку!
0
226 / 225 / 112
Регистрация: 20.10.2013
Сообщений: 808
30.03.2015, 21:09 16
Лучший ответ Сообщение было отмечено QvaserZver как решение

Решение

QvaserZver,
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function MySearch(const AInput, SearchFor: string; out a, b: string): Boolean;
var
  i: Integer;
begin
  i := pos(SearchFor, AInput);
  Result := i > 0;
  if Result then
  begin
    a := Copy(AInput, i, Length(SearchFor));
    b := Copy(AInput, i + Length(SearchFor), Length(AInput));
  end;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
  a, b: string;
begin
  for i := 0 to Memo1.Lines.Count - 1 do
    if MySearch(Memo1.Lines[i], 'Найти:', a, b) then
      Break;
  ShowMessage(Format('a=%s; b=%s;', [a, b]));
end;
1
2 / 2 / 1
Регистрация: 31.03.2013
Сообщений: 220
30.03.2015, 21:11  [ТС] 17
Красавец!
0
Sigin
30.03.2015, 21:11     Разбитие текста на константы a и b
  #18

Не по теме:

QvaserZver, это ты за 2 минуты и код проверил? Быстрый резвый!

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.03.2015, 21:11

Разбитие текста в найденой ячейке и заполнение таблицы
Привет всем! Помогите пожалуйста с разбитием текста в найденой ячейке и заполнением таблицы. ...

Комбинаторно- вероятностный смысл константы пи, гамма функция и обобщение константы пи
Добавлено через 33 минуты Известна формула для выражения \pi, ...

Разбитие на фунции
Нужна помощь, разбить каждое подписанное действие на функции #include &lt;iostream&gt; #include...

Разбитие строки
Есть строка, которая передаётся в функцию func(code); Содержимое строки выглядит в подобном...

Разбитие графика
Есть график,в графике через одно и тоже значение (1000) нужно вырезать отрезок определённой...

Разбитие диска
Суть : есть примерно 230-250 гигов на диске. Установлена Ubuntu. Нужно разбить диск так, чтобы...


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

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

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