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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.07.2011, 17:40   #1
men232
Пользователь
 
Регистрация: 11.05.2011
Сообщений: 59
По умолчанию Проблема с функцией pos.

Всем доброго времени суток, возникла проблема с функцией pos.
У меня есть строка:
Код:
Часть1;Часть2;Часть3
Мне нужно отделить все до ; и присвоить переменным.
Мне удалось отделить только первые две части, и то Часть2 захватывает Часть3, вот код:
Код:
Part1 := copy(Form1.Memo1.Lines[i], 0, pos(';', Form1.Memo1.Lines[i]) - 1);
Part2:= copy(Form1.Memo1.Lines[i], pos(';', Form1.Memo1.Lines[i]) + 1, Length(Form1.Memo1.Lines[i]));
Что мне нужно дописать что бы отделить третью часть.

Забыл указать что пишу на delphi

Последний раз редактировалось men232; 01.07.2011 в 18:22.
men232 вне форума Ответить с цитированием
Старый 01.07.2011, 17:56   #2
syc07
 
Регистрация: 01.07.2011
Сообщений: 7
По умолчанию

язык не знаю какой, напишу для паскаля.
m=length(s)
m:=m div 3;
part2:=copy(s,m+1,m)
part3:=copy(s,2*m+1,m)
m-первая часть.
syc07 вне форума Ответить с цитированием
Старый 01.07.2011, 18:23   #3
men232
Пользователь
 
Регистрация: 11.05.2011
Сообщений: 59
По умолчанию

А можно такое только на delphi!
men232 вне форума Ответить с цитированием
Старый 01.07.2011, 18:33   #4
syc07
 
Регистрация: 01.07.2011
Сообщений: 7
По умолчанию

Part2:= copy(Form1.Memo1.Lines[i], pos(';', Form1.Memo1.Lines[i]) + 1, Length(Form1.Memo1.Lines[i]) div 3);
Part3:=copy(Form1.Memo1.Lines[i], 2*pos(';', Form1.Memo1.Lines[i])+1,Length(Form1.Memo1.Lines[i]) div 3)

в коде не уверен
syc07 вне форума Ответить с цитированием
Старый 01.07.2011, 19:05   #5
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,542
По умолчанию

s:='......................';
1. начиная с delphi7 (posEx)
Код:
k1:=pos(';',s);
s1:=copy(s,1, k1-1);
k2:=posex(';',s,k1+1);
s2:=copy(s,k1+1,(k2-1)-)k1+1));
s3:=copy(s,k2+1, length(s)-k2);
2 ранние версии
Код:
k:=pos(';',s);
s1:=copy(s,1,k-1);
delete(s,1,k);
k:=pos(';',s);
s2:=copy(s,1,k);
delete(s,1,k);
s3:=s;
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 01.07.2011 в 19:08.
evg_m вне форума Ответить с цитированием
Старый 01.07.2011, 19:36   #6
men232
Пользователь
 
Регистрация: 11.05.2011
Сообщений: 59
По умолчанию

Спасибо всем за примеры, но почему то у меня не получается.
Я из таких людей которым нужно разжевывать, извините.
men232 вне форума Ответить с цитированием
Старый 01.07.2011, 20:55   #7
men232
Пользователь
 
Регистрация: 11.05.2011
Сообщений: 59
По умолчанию

Получилось, спасибо всем. Пришлось с бубном потанцевать :D
men232 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемка с функцией pos() строки Риндера Помощь студентам 14 03.11.2010 11:18
проблема с функцией saix Общие вопросы C/C++ 14 28.10.2010 19:07
Epson Esc/pos Проблема с шрифтами Gigabit Общие вопросы Delphi 0 22.03.2010 11:37
Не могу понять в чем проблема!(copy,length,pos) zotox Помощь студентам 1 26.04.2009 03:12