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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.08.2010, 18:59   #1
Delphinchik
Пользователь
 
Регистрация: 10.08.2010
Сообщений: 60
По умолчанию Найти первое слово в строке

Есть слово, например: A (переменная), и текст, в котором это слово в одной из строк, пример строки: --- --- --- --- и так несколько строк.
Мне нужно найти первый символ в строке в которой есть слово A - и записать его в переменную, как это возможно?
Delphinchik вне форума Ответить с цитированием
Старый 23.08.2010, 19:32   #2
Vikenty
Заслуженный флудер
Участник клуба
 
Аватар для Vikenty
 
Регистрация: 31.03.2010
Сообщений: 1,473
По умолчанию

как то так)
Код:
var
Str: string;
Word: string;
OutText: string;
begin
Str:='Hello World!!!';
Word:='World';
if Pos(Word,Str)<>0 then
OutText:=Copy(Str,Pos(Word,Str),Length(Word));
end;
Vikenty вне форума Ответить с цитированием
Старый 23.08.2010, 19:38   #3
D@rkD@iver
Форумчанин
 
Регистрация: 28.07.2009
Сообщений: 189
По умолчанию

смотря откуда у тебя текст берется допустим из файла

Код:
var
     str:string;
     c: char;
     f: textfile;

assignfile(f, 'in.txt');
reset(f);
while not eof(f) do
begin
read(f, str);
if pos (a, str)>0 then
   c:= str[1];
end;
closefile(f);
пишу программы для студентов и школьников на Pascal, Delphi, C++, WINAPI, assembler
обучаю программированию на паскале(дистанционно);mail: hruslow@gmail.com
D@rkD@iver вне форума Ответить с цитированием
Старый 23.08.2010, 20:23   #4
Delphinchik
Пользователь
 
Регистрация: 10.08.2010
Сообщений: 60
По умолчанию

Спасибо, но так получилось что это не поможет...

Из выше написаного замутил так:

Код:
procedure TForm1.Button1Click(Sender: TObject);
var b,c:string;
begin
b:='Слово';
Memo1.Lines.LoadFromFile('in.txt');
if pos(b,Memo1.Lines.text)>0 then
begin
c:=Memo1.Lines.text[1];
showmessage(c)
end
else
showmessage('нет') ;
end;
Все работает, но он не находит первый символ в строке где есть слово b, в чем причина?

Всё время пишит 1
Delphinchik вне форума Ответить с цитированием
Старый 23.08.2010, 21:35   #5
Блуд
Пользователь
 
Регистрация: 23.05.2010
Сообщений: 53
По умолчанию

попробуй этот
Код:
procedure TForm1.Button1Click(Sender: TObject);
var b,c:string;
i:integer;
begin
b:='Слово';
Memo1.Lines.LoadFromFile('in.txt');
for i:= 0 to  memo1.lines.count-1 do
begin
if pos(b,Memo1.Lines[i])>0 then
begin
c:=Memo1.Lines.text[i][1];
showmessage(c)
end;
end;
if c='' then 
showmessage('нет') ;
end;


end;

Последний раз редактировалось Блуд; 23.08.2010 в 21:41.
Блуд вне форума Ответить с цитированием
Старый 23.08.2010, 21:47   #6
alexprey
Форумчанин
 
Регистрация: 25.05.2010
Сообщений: 169
По умолчанию

Вроде можно и вот так
c:=Memo1.Lines.text[i,1];
alexprey вне форума Ответить с цитированием
Старый 23.08.2010, 21:52   #7
Блуд
Пользователь
 
Регистрация: 23.05.2010
Сообщений: 53
По умолчанию

Цитата:
Сообщение от alexprey Посмотреть сообщение
Вроде можно и вот так
c:=Memo1.Lines.text[i,1];
попробуй так c:=Memo1.Lines[i][1], вроде работает,проверил
*опечатка,поправил

Последний раз редактировалось Блуд; 23.08.2010 в 21:58.
Блуд вне форума Ответить с цитированием
Старый 23.08.2010, 22:32   #8
Delphinchik
Пользователь
 
Регистрация: 10.08.2010
Сообщений: 60
По умолчанию

Перепробовал куча способов, не решена проблема( Не хочет показывать певый символ.

Вот кароче текст файла ini.txt:

Код:
1		lalalahohohomemememe	user		
2	Kasper	fe862290f2f6fd895247e9ffc46717a5	1023	kasper	
21	vodka1997	04f9506938080338bf813b63173fe111	0	vodkal997	
22	Vistel	d383fe40da935eb6a3cad0046558600b	user	vlstel	
23	Tikki_Jaguar	5c85ad1559fa96eaa0d5120b29ca4753	user	tlkkl_jaguar	
24	AMATORY	77df1b2ab4203c698c0ffefcba0020f5	user	amatory	
25	Latte	73fee192744f842a611a5ec336459f5c	user	latte	
28	вика	32f851f7c0184f8e1e8c53abc82ed8de	0	вuka	
29	tester	550a141f12de6341fba65b0ad0433500	user	tester	
30	саша	15de21c670ae7c3f6f3f1f37029303c9	0	caшa	
31	Сисько	e034fb6b66aacc1d48f445ddfb08da98	1023	Сucbko	
32	рол	15de21c670ae7c3f6f3f1f37029303c9	0	poл	
33	STING	78913b36d413b87bcb70733c981bcc23	user	stlng	
34	kasp	202cb962ac59075b964b07152d234b70	0	kasp	
35	vitalik	3aeadeda68a4585a7c46f292475cf066	user	vltallk	
36	Elaman	f40bec12d38abc6ac46a89f9fd9f78d0	user	elaman	
37	toa15	ce0be5bfad9f5fb1b82d7d407a6f058c	0	toal5	
38	*RoSe*	df68695e81d6f3b374ef5aca0c059e90	user	*rose*	
39	Ленчик	491987b4c34ab37766d5d2fdda7a2802	0	Лehчuk	
40	123	69dafe8b58066478aea48f3d0f384820	user	l23	
41	aaa	08f8e0260c64418510cefb2b06eee5cd	user	aaa	
42	Ник	08f8e03bd59a7c67dc44028b3e073d5e	user	Нuk	
43	dsfsdf	08f8e03bd59a7c67dc44028b3e073d5e	user	dsfsdf	
44	aa	4124bc0a9335c27f086f24ba207a4912	user	aa	
45	kkkk	08f8e03bd59a7c67dc44028b3e073d5e	user	kkkk	
46	ывыф	036a9c5c8c3c476cd499c12be352ba5c	user	blвblф	
47	dfds	036a9c5c8c3c476cd499c12be352ba5c	user	dfds	
48	ssss	77963b7a931377ad4ab5ad6a9cd718aa	user	ssss	
49	gfhdfg	343d9040a671c45832ee5381860e2996	user	gfhdfg	
50	srts	290d5a0602bff6f3f96608dbc09f7469	user	srts	
51	df	36eba1e1e343279857ea7f69a597324e	user	df	
52	Апав	3691308f2a4c2f6983f2880d32e29c84	user	Аnaв	
53	System	a45da96d0bf6575970f2d27af22be28a	1023	system	
54	www	4eae35f1b35977a00ebd8086c259d4c9	user	www	
55	Алёнач	202cb962ac59075b964b07152d234b70	user	Алёhaч	
56	sdfsdf	cead3f77f6cda6ec00f57d76c9a6879f	user	sdfsdf	
57	Lemies	6cb0b899abf3238b0ad9a3779ebed091	user	lemles	
58	MIXA	4b112ee30e443db7efd91125efeb21b0	user	mlxa	
59	AlenA	ca6b147b8fbdd688d8ebcaa3b803c22a	user	alena
Мне нужно по нику юзверя, найти его ID (цыфра первая) вот допустим делаю так:

Код:

procedure TForm1.Button2Click(Sender: TObject);
var
b,c:string;
begin
b:='System';// Этот ник есть в ini.txt ^^^ его ид 53
Memo1.Lines.LoadFromFile('in.txt');
if pos(b,Memo1.Lines.text)<>0 then
begin
c:=copy(memo1.Lines.Strings[memo1.Lines.IndexOf(b)],0,1);
showmessage(c);
end
else
showmessage('no');
end;
В итоге вместо id 53 вижу ип*ное пустое поле(
Уже нет слов, таких глюков невидал.
Есть еще идеи какиенить? Буду очень благодарен, заранее спасибо...

Последний раз редактировалось Delphinchik; 23.08.2010 в 22:35.
Delphinchik вне форума Ответить с цитированием
Старый 24.08.2010, 01:15   #9
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

На форме кнопка и два эдита:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var a,b : string;
i,c : integer;
list : TStringList;
begin
b := 'System';
list := TStringList.Create;
list.LoadFromFile('ini.txt');
for i := 0 to List.Count - 1 do
  begin
    if pos(b,list.Strings[i])<>0 then
      begin
        Edit1.Text := b;
        c := pos(#9,list.Strings[i]);
        Edit2.Text := copy(list.Strings[i],0,c);
      end;
  end;
list.Free;
end;
#9 - код знака табуляции.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 24.08.2010, 07:55   #10
Блуд
Пользователь
 
Регистрация: 23.05.2010
Сообщений: 53
По умолчанию

Код:
procedure TForm1.FormClick(Sender: TObject);

var b,c:string;
i:integer;
begin
b:='System';
Memo1.Lines.LoadFromFile('in.txt');
for i:= 0 to  memo1.lines.count-1 do
begin
if pos(b,Memo1.Lines[i])>0 then
begin
if Memo1.Lines[i][2]<>#9 then
c:=copy(Memo1.Lines[i],1,3)
else
c:=copy(Memo1.Lines[i],1,2);
showmessage(c)
end;
end;
if c='' then
showmessage('нет') ;



end;
работает 100%, сам проверил на твоём примере, надеюсь перед ID нет пробелов, иначе будет пустое окно
Блуд вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
извлечь из ячейки первое слово до пробела KNatalia Microsoft Office Excel 4 06.08.2010 16:11
Язык С : Найти наиболее часто встречаемое слово в строке delphi_HOBu4oK Помощь студентам 0 15.05.2010 12:18
Определить первое слово, начинающееся с заданного символа. Нездешний Помощь студентам 11 18.10.2009 16:51