Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
DeathKorps
0 / 0 / 2
Регистрация: 18.03.2016
Сообщений: 96
#1

Выписать k-e слово из текста - Delphi

02.05.2016, 08:26. Просмотров 185. Ответов 5
Метки нет (Все метки)

1. Текст задан следующим образом: первый символ цифра, указывающая длину первого слова, за первым словом - вновь цифра, указывающая длину второго слова (длина каждого слова <=9) и т.д. Выписать k-e слово из текста.

Удалось написать функцию,но не знаю как в Баттоне соединить текст с функцией
чтобы вывести на экран.
Delphi
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
unit Unit1;
 
interface
 
uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
function GetWord(s:string; n:integer):string;
var
i,pos:integer;
begin
  Result:='' ;
  for i := 1 to length(s) do
  begin
    if(s[i]=IntToStr(n)) then
    begin
      pos:= i+1;
      Result:=result+copy(s,pos,n)+'';
      GetWord:=result;
    end;
  end;
 
 
end;
procedure TForm1.Button1Click(Sender: TObject);
 var
   myString : String;
   n:integer;
 begin
 n:=GetWord;
   myString := ‘5Hello 4World 3you 7metalik ’;
 end;
 
 
end.

http://www.cyberforum.ru/delphi-beginners/thread773756.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.05.2016, 08:26
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Выписать k-e слово из текста (Delphi):

Выписать с данного текста строку, что состоит с последних шести слов
Текст: ученому мир, а неученому - тьма.

Удалить из текста шестое слово
Удалить из текста шестой слово Текс: ПРЕДСЕДАТЕЛЬ БЕЗ УМА, КАК фонарный БЕЗ...

Определить длинное слово текста
Определить длинное слово текста Текст: СТАРЫЙ ДУРАК ИСТОРИКО ТЕРПЕТЬ НЕ МОЖЕТ...

Удалить из текста слово с заданным номером
Мне надо сделать так чтобы через Edit1 вписывалось какое предложение после чего...

Напечатать самое длинное слово из текста
1)Напечатать самое длинное слово из текста( между словами может быть несколько...

5
Puporev
Модератор
54131 / 41764 / 28875
Регистрация: 18.05.2008
Сообщений: 98,291
02.05.2016, 08:39 #2
Лучший ответ Сообщение было отмечено DeathKorps как решение

Решение

Delphi
1
2
3
4
5
6
7
8
9
10
11
procedure TForm1.Button1Click(Sender: TObject);
var
   myString : String;
   k:integer;
begin
k:=strtoint(Edit1.Text);
myString := '5Hello 4Work 3you 7metalik';
if GetWord(myString,k)='' then ShowMessage('Такого номера в строке нет')
else Edit2.Text:=GetWord(myString,k);
 
end;
1
JIeIIIa
672 / 354 / 83
Регистрация: 23.05.2012
Сообщений: 6,394
02.05.2016, 08:44 #3
Лучший ответ Сообщение было отмечено DeathKorps как решение

Решение

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
procedure TForm1.Button1Click(Sender: TObject);
 var
   myString : String;
   n:integer;
 begin
   n:=3;
   myString := ‘5Hello 4World 3you 7metalik ’;
   ShowMessage(GetWord(myString, n));         //результат функции GetWord выводим в диалоговое окно
   //так же результат можно выводить, например, в TLabel, но изначально надо его добавить на форму(!):
   //Label1.Caption := GetWord(myString, n)
   //или в другой TEdit
   //Edit2.Text := GetWord(myString, n)
 end;
1
Hikari
Хитрая блондиночка $)
1451 / 960 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
02.05.2016, 08:47 #4
Цитата Сообщение от DeathKorps Посмотреть сообщение
первый символ цифра, указывающая длину первого слова, за первым словом - вновь цифра
Другими словами подвох в том, что слова не отделены ни пробелами ни другими знаками препинания?
Иначе зачем такие маркеры?
0
Puporev
Модератор
54131 / 41764 / 28875
Регистрация: 18.05.2008
Сообщений: 98,291
02.05.2016, 08:51 #5
Лучший ответ Сообщение было отмечено DeathKorps как решение

Решение

Функцию напиши проще
Delphi
1
2
3
4
5
6
7
function GetWord(s:string; n:integer):string;
var p:integer;
begin
p:=pos(IntToStr(n),s);
if p=0 then Result:=''
else Result:=copy(s,p+1,n);
end;
Вообще пробелы по условию не нужны, хотя и с ними работает.
1
DeathKorps
0 / 0 / 2
Регистрация: 18.03.2016
Сообщений: 96
02.05.2016, 09:22  [ТС] #6
Угу.В том и заключалась задача.

Добавлено через 5 минут
У Pyporev универсальнее код,но и ваш решает задачу.Всем спасибо

Добавлено через 11 минут
Списал вашу функцию.Не работает.

Добавлено через 4 минуты
Функция работает.Сам допустил ошибку.
0
02.05.2016, 09:22
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.05.2016, 09:22
Привет! Вот еще темы с решениями:

Удалить из заданного текста шестое слово
Удалить из текста шестое слово Текст: МУДРАЯ ГОЛОВА НЕ ЗАБОТИТЬСЯ О ПЛОХИХ...

Как рандомно выбрать из текста слово?
Допустим,у меня в текстовом документе есть слова.Мне надо чтоб он при нажатии...

Напечатать самое длинное слово из текста.
Помогите пож-та решить...напечатать самое длинное слово из текста в delphi.....

Действие при нажатии на определенное слово текста
Ребята, подскажите, пожалуйста! Есть текст в формате rtf, который при нажатии...


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

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

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