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

Вниз

TStringList   Найти похожие ветки 

 
fifi01   (2006-09-21 13:03) [0]

Не пойму в чем проблема, есть TStringList, в который я в цикле добавляю строчки, строчки состоят как из читабельных символов, так и с полной ерундой (#$74#$0a#$76) - ну например так, только строчки длинее. Далее, после добавления в итоге оказывается, что в .Strings[i], либо пусто либо какие-то оторванные символы. Что я не так делаю?


 
fifi01   (2006-09-21 13:14) [1]

Кажется понимаю в чем "ошибка", но не знаю как её исправить. В добавляемой строке, В конце встречается #$00#$00 т.е. нулевые символы, и дальнейшее манипулирование невозможно. Что делать?


 
Dmitrij_K   (2006-09-21 13:18) [2]


>  Что делать?

Показать код. Попробуем помоч


 
Desdechado ©   (2006-09-21 13:19) [3]

> я в цикле добавляю строчки
код добавления и содержимое строки до добавления
а отладчиком пользоваться не учили?


 
fifi01   (2006-09-21 13:24) [4]

Код по своей сути примитивен.

Формат входящих данных в hex например: "#$0a#$75#$74#$0d#$ee#$13....."

   USList: TStrings;
   USList := TStringList.Create;
       for i := 0 to SourceLength - 1 do begin
        USList.Add(GetOwnStr(Source)); // добавили

         Form1.Memo1.Lines.Add("Test =  + StrToHex(PChar(USList.Strings[i])));  // тестируем для контроля данных в hex формате
       end;


 
fifi01   (2006-09-21 13:29) [5]

Но всё начинается видимо из-за того, что в добавляемой строке появляетются нулевые символы, #$00#$00#$00... если они присутствуют, то всё не работает.


 
Eraser ©   (2006-09-21 13:30) [6]

> [0] fifi01   (21.09.06 13:03)

если присутствуют не только читабельные символы, а еще в любые, то нужно отказаться от использования TStringList, или предварительно обрабатывать данные вручную.


 
Dmitrij_K   (2006-09-21 13:41) [7]

TStringList работает с String и ему по*** что в себе хранить
А Memo как раз и обрезает #0


> Desdechado ©   (21.09.06 13:19) [3]
> ... а отладчиком пользоваться не учили?


 
fifi01   (2006-09-21 13:43) [8]

Ну и что тогда использовать? Мне нужен был TStringList, что бы потом можно было использовать функцию pos относительно .Strings[i] или относительно общего текста .Text. Так а что теперь делать? Составлять массив массивов состоящих из байт? Как в следствии легче использовать pos относительно отдельного элемента и относительно всей информации?


 
Dmitrij_K   (2006-09-21 13:43) [9]

Очень простой тест
var sl:TStringList;
begin
 sl := TStringList.Create;
 sl.add("привет"#0#0#1#2#3#4#13#10);
 ShowMessage(sl.Text); // встать тут и посмотреть что находится в sl[0]
 memo1.Lines.Add(sl[0]);
end;


 
fifi01   (2006-09-21 13:47) [10]

Ну вся проблема такая:
например я добавляю:
1. #$71#$71#$75#$74#$71#$76#$76#$76#$76
2. #$71#$71#$75#$74#$71#$00#$00#$00
3. далее идет другой текст

Но в листе оказывается только 1 целиком и второй только #$71#$71#$75#$74#$71.


 
Dmitrij_K   (2006-09-21 13:51) [11]


> о в листе оказывается только 1 целиком и второй только #$71#$71#$75#$74#$71.

Незнаю как у тебя, но у меня delphi 7 показывает что добавил


 
icWasya ©   (2006-09-21 15:57) [12]

// встать тут и посмотреть что находится в sl[0]
ну так вот ShowMessage и не покажет ничего после #0


 
Наиль ©   (2006-09-21 16:17) [13]


> StrToHex(PChar...

Интересный способ тестирования.
#0 всегда постпоследний в строке PChar, т.е. он неявляется частью строки и передним не встречаются #0. Другими словами первый же #0 - конец строки.



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

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

Наверх




Память: 0.47 MB
Время: 0.061 c
3-1155213781
Ega23
2006-08-10 16:43
2006.10.08
конструкция Update ... Set ID=(Select)


15-1158509360
dreamse
2006-09-17 20:09
2006.10.08
За какое время сможете найти ответ в приколе ?


15-1158669123
vidiv
2006-09-19 16:32
2006.10.08
Снятие пароля на setup для ноутбука.


15-1158487787
ArtemESC
2006-09-17 14:09
2006.10.08
Полином


15-1158534370
SerJaNT
2006-09-18 03:06
2006.10.08
Windows 2000 мы Windows 2000





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