Главная страница
    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.051 c
15-1158157573
oldman
2006-09-13 18:26
2006.10.08
Надо купить комп. Все новые камни уже 64.


15-1158293479
Pazitron_Brain
2006-09-15 08:11
2006.10.08
Модель общественного повидения


15-1158688751
Piter
2006-09-19 21:59
2006.10.08
Срок службы mp3 flash-плееров


15-1158568278
deftemp
2006-09-18 12:31
2006.10.08
Perevod teksta s angliiskogo na russkiy cherez perevodchik


15-1157075691
Доктор Шмурге
2006-09-01 05:54
2006.10.08
Куда попадет Сатана после смерти?





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