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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.05.2011, 13:14   #11
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Код:
for i := 1 to 10 do
begin
 if pos('=', stringBuff[i-1])>1 then begin
   names = copy(stringBuff[i-1], 0, pos('=', stringBuff[i-1]) - 1);
   ages = copy(stringBuff[i-1], pos('=', stringBuff[i-1]) + 1, length(stringBuff[i-1]) - pos('=', stringBuff[i-1]));
 end;
end;
внимание! Если в нескольких строчках в stringBuff встретится знак "=" - то в переменные попадут значения последней строки...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 05.05.2011, 14:15   #12
chertovich
Форумчанин
 
Аватар для chertovich
 
Регистрация: 26.07.2009
Сообщений: 489
По умолчанию

Могу дать небольшой совет. Чтобы написать нормальный парсер (хороший для восприятия и понимания, это позволит писать более сложные алгоритмы) нужно разбивать более сложные задачи на мелкие, а не липить все это в одном цикле, а то получается большая куча "быдлокода"
Если в глубине души вы программист, то, следуя своим наклонностям, вы захотите написать кусок кода.
chertovich вне форума Ответить с цитированием
Старый 05.05.2011, 17:24   #13
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

гм да ведь просто ведь=)
Возвращаем первый параметр до =
[CODE]
function some1(aStr:string):string;
var
s:string;
begin
s:=aStr;
Result:=Copy(s,1,Pos('=',s));
end;

Возвращаем второй параметр после =
Код:
function some1(aStr:string):string;
var
  s:string;
begin
s:=aStr;
Result:=Copy(s,Pos('=',s)+1,Lenght(s)-Pos('=',s)+1);
end;
Человек_Борща вне форума Ответить с цитированием
Старый 05.05.2011, 17:34   #14
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Чтобы написать нормальный парсер (хороший для восприятия и понимания, это позволит писать более сложные алгоритмы) нужно разбивать более сложные задачи на мелкие, а не липить все это в одном цикле, а то получается большая куча "быдлокода"
в данном случае лучше не разбивать на меньшие куски.
иначе получится не эффективный код.
Код:
for i := 1 to 10 do
begin
 l:=pos('=', stringBuff[i-1])
 if l>1 then begin
   names = copy(stringBuff[i-1], 0, l - 1);
   ages = copy(stringBuff[i-1], l + 1, length(stringBuff[i-1]));//лишняя длина, это ничего страшного.
 end;
end;
там лучше, чем кучу раз pos вызывать.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 05.05.2011, 17:52   #15
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Цитата:
Такого содержимого: Андрей=33
На то есть TValueListEditor и TStringList - в этих классах уже есть все необходимое для доступа к элементам данных в строках такого вида.
mss вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
распарсить сторку bulldog5293 Общие вопросы Delphi 9 18.02.2011 23:57
Распарсить строку bulldog5293 Работа с сетью в Delphi 7 18.12.2010 19:25
Как лучше распарсить строку? Molotoff Общие вопросы C/C++ 8 18.06.2009 18:37
Помогите распарсить строку Alexander1991 Помощь студентам 1 08.03.2009 22:33
Распарсить HTML Табурет Общие вопросы C/C++ 11 02.03.2008 19:26