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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.05.2011, 00:52   #1
celovec
Форумчанин
 
Регистрация: 15.06.2007
Сообщений: 182
По умолчанию Необходимо распарсить строку

Код:
  try
    stringBuff.CustomSort(CompareWithValues);
    for i := 1 to 10 do
    stringBuff[i-1] // необходимо распарсить эту переменную.
  finally
    stringBuff.Free;
  end;
stringBuff[i-1] Такого содержимого: Андрей=33

Тоесть необходимо Андрей загнать в 1 переменную а 33 в другую. Разделитель =

Помогите пожалуйста это реализовать на примере.
celovec вне форума Ответить с цитированием
Старый 03.05.2011, 00:57   #2
zotox
Форумчанин
 
Регистрация: 09.09.2008
Сообщений: 395
По умолчанию

delphi с собою нету, осмелюсь предположить что так:
Код:
for i := 1 to 10 do
begin
 names[i] = copy(stringBuff[i-1], 0, pos('=', stringBuff[i-1]) - 1);
 ages[i] = copy(stringBuff[i-1], pos('=', stringBuff[i-1]) + 1, length(stringBuff[i-1]) - pos('=', stringBuff[i-1]));
end;
names, ages: массивы. Ключевые функции для парсинга: copy, pos.
zotox вне форума Ответить с цитированием
Старый 03.05.2011, 09:37   #3
JoLan
Delphi XE7
Пользователь
 
Аватар для JoLan
 
Регистрация: 26.07.2010
Сообщений: 74
По умолчанию

А может лучше будет извратиться: записать все данные в файл и открыть его как ini?
JoLan вне форума Ответить с цитированием
Старый 03.05.2011, 12:13   #4
celovec
Форумчанин
 
Регистрация: 15.06.2007
Сообщений: 182
По умолчанию

Цитата:
Сообщение от zotox Посмотреть сообщение
delphi с собою нету, осмелюсь предположить что так:
Код:
for i := 1 to 10 do
begin
 names[i] = copy(stringBuff[i-1], 0, pos('=', stringBuff[i-1]) - 1);
 ages[i] = copy(stringBuff[i-1], pos('=', stringBuff[i-1]) + 1, length(stringBuff[i-1]) - pos('=', stringBuff[i-1]));
end;
names, ages: массивы. Ключевые функции для парсинга: copy, pos.


Код:
    names[i] := copy(stringBuff[i-1], 0, pos('=', stringBuff[i-1]) - 1);
ошибка:
[Error] Unit1.pas(468): Incompatible types: 'Char' and 'String'



JoLan, у меня так и есть. Но эти данные необходимо сортировать. Я об этом писал здесь: http://programmersforum.ru/showthread.php?t=142998
celovec вне форума Ответить с цитированием
Старый 03.05.2011, 15:34   #5
zotox
Форумчанин
 
Регистрация: 09.09.2008
Сообщений: 395
По умолчанию

celovec, какой тип имеет stringBuff ?
zotox вне форума Ответить с цитированием
Старый 03.05.2011, 15:38   #6
celovec
Форумчанин
 
Регистрация: 15.06.2007
Сообщений: 182
По умолчанию

stringBuff: TStringList;
celovec вне форума Ответить с цитированием
Старый 03.05.2011, 17:08   #7
zotox
Форумчанин
 
Регистрация: 09.09.2008
Сообщений: 395
По умолчанию

Тогда это будет выглядеть примерно так:
Код:
for i := 1 to 10 do
begin
 names[i] = copy(stringBuff.Strings[i-1], 0, pos('=', stringBuff.Strings[i-1]) - 1);
 ages[i] = copy(stringBuff.Strings[i-1], pos('=', stringBuff.Strings[i-1]) + 1, length(stringBuff.Strings[i-1]) - pos('=', stringBuff.Strings[i-1]));
end;
Будет пропарсено с первой строки/столбца stringBuff до десятой.
zotox вне форума Ответить с цитированием
Старый 05.05.2011, 10:35   #8
celovec
Форумчанин
 
Регистрация: 15.06.2007
Сообщений: 182
По умолчанию

Снова ошибка:
Incompatible types: 'Char' and 'Strings'
celovec вне форума Ответить с цитированием
Старый 05.05.2011, 10:36   #9
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а у вас какого типа names и ages?
видимо массив Char, а надо то массив строк
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 05.05.2011, 12:33   #10
celovec
Форумчанин
 
Регистрация: 15.06.2007
Сообщений: 182
По умолчанию

Код:
var 
names,ages: Strings;
celovec вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 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