Текущий архив: 2006.10.08;
Скачать: CL | DM;
Вниз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;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.04 c