Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.11.15;
Скачать: [xml.tar.bz2];

Вниз

пРОБЛЕМА С listbox   Найти похожие ветки 

 
defen ©   (2009-09-28 15:59) [0]

Есть строки в listBox:
</##?#USBSTOR#Disk&Ven_&Prod_USB_DISK_30X&Rev_3.00#6&1946012f&0#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}
\##?#USBSTOR#Disk&Ven_CBM&Prod_Flash_Disk&Rev_5.00#121006002C63D402&0#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}CODE>\

Из них надо достать шестнадцатиричное значение 6&1946012f и 121006002C63D402. Использовал
S:="##?#USBSTOR#Disk&Ven"; with ListBox1 do
  ItemIndex := Perform(LB_SELECTSTRING, ItemIndex, LongInt(S));


но, как видитие не получил полноценного результата... Значения должны выводиться во второй ListBox, но это не критично, если знаете другой способ, помогите пожалуйста! Заранее спасибо.


 
clickmaker ©   (2009-09-28 16:05) [1]

регулярные выражения


 
Сергей М. ©   (2009-09-28 16:06) [2]

TRegExpr


 
Юрий Зотов ©   (2009-09-28 16:09) [3]

1. Берем всю строку
2. В ней находим позиции 5-го и 6-го символов #
3. Берем подстроку между этими позициями


 
defen ©   (2009-09-28 16:10) [4]

уважаемые, я конечно все понимаю, но нельзя ли конкретизировать свои ответы. Я не особо хорошо знаю язык, а програмированием занимаюсь от случая к случаю. Спасибо...


 
Сергей М. ©   (2009-09-28 16:21) [5]

http://www.delphikingdom.com/asp/viewitem.asp?catalogid=163


 
defen ©   (2009-09-28 16:33) [6]

Попробую...


 
Юрий Зотов ©   (2009-09-28 16:39) [7]

Я все же полагаю, что использование регулярных выражений в такой детской задачке - это стрельба из пушки по воробьям. Каждый способ решения хорош по-своему и в данном случае написать десяток элементарных строк гораздо проще и быстрее, чем изучать регвыражения.

Ну не нужен экскаватор для того, чтобы наполнить песком игрушечное ведерко. Совочек нужен, а экскаватору оставим котлованы - это его работа.

uses
 StrUtils;

procedure TForm1.FormDblClick(Sender: TObject);
var
 S: string;
 i, P5, P6: integer;
begin
 if ListBox1.ItemIndex >= 0 then
 begin
   S := ListBox1.Items[ListBox1.ItemIndex];
   P5 := 0;
   for i := 1 to 5 do
     P5 := PosEx("#", S, P5 + 1);
   P6 := PosEx("&0#{", S, P5 + 1);
   S := Copy(S, P5 + 1, P6 - P5 - 1);
   ListBox2.Items.Add(S)
 end
end;


 
Игорь Шевченко ©   (2009-09-28 16:46) [8]

нет у тебя с listbox проблемой, читай правила форума и учись правильно задавать вопрос



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2009.11.15;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.005 c
2-1254289329
Johnnnnn
2009-09-30 09:42
2009.11.15
Управление с клавиатуры &amp;


2-1254305859
Fr
2009-09-30 14:17
2009.11.15
Кнопка в TWebBrowser


15-1250883311
TIF
2009-08-21 23:35
2009.11.15
Сохранение статей из MSDN Library


15-1253369312
Игорь
2009-09-19 18:08
2009.11.15
APM


15-1252614613
Юрий
2009-09-11 00:30
2009.11.15
С днем рождения ! 11 сентября 2009 пятница





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский