Главная страница
    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.007 c
2-1254227370
Aleks
2009-09-29 16:29
2009.11.15
Реестр и StringToColor


15-1252835080
Kerk
2009-09-13 13:44
2009.11.15
[FreeBSD] Too many open files


15-1253260856
Empleado
2009-09-18 12:00
2009.11.15
О веб сайтах


2-1254269831
Drowsy
2009-09-30 04:17
2009.11.15
Как можно из программы запустить другое приложение


2-1254066422
K_Lock
2009-09-27 19:47
2009.11.15
1 копия формы в MDI приложении





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский