Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как заставить TStringlist отобразить данные, Нужно корректное отображение данных 
:(
    Опции темы
ЛеньПридумыватьНик
Дата 7.3.2010, 18:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 7.3.2010

Репутация: нет
Всего: нет



Здравствуйте!
Столкнулся с проблемой корректного вывода данных TStringList'ом
Суть проги:
Есть один Edit, два RichEdit'a, кнопка, при нажатии на которую получаем коды символов первого RichEdit'a и заносим их во второй
Вот сам код: 
Код

var c, s: TStringList;
   l: string;  // Сюда мы запишем данные из c.TStringlist;
     o, ci, cj: integer;
     // o будет возвращать код символа, ci, cj - счетчики для
     //первого TStringList'a.
   x: char;
begin
//Инициализируем переменные
 c:=TStringList.Create;
  s:=TStringList.Create;
  //Загружаем в первый TSringlist данные из RichEdit1
c.AddStrings(RichEdit1.Lines);
  //Получаем доступ к строкам TSringlst.
  //Данные заносим в переменную l, над которой будем работать
   for ci:=1 to c.Count - 1 do begin
     l:=c.Strings[ci];
     // Здесь мы получаем код каждого символа каждой строки TStringList
     //Резульат заносим в s.TStringLisr
       for cj:=1 to length(l) do begin
         x:=l[cj];
       o:=ord(x);
      s.Add(IntToStr(o) + ' ');
     RichEdit2.Lines.AddStrings(s);
  end;
 end;

Допустим, в первом RichEdit'e есть строки:
    фыва
    олдж
Необходимо в второй RichEdit вывести:
    244 251 226 224
    238 235 228 230
 
А получается белиберда типа:
    244 
    244 
    251 
    244 
    251 
    226 
    244 
    251 
    226 
    224 
    244 
    251 
    226 
    224 
    238 
    244 
    251 
    226 
    224 
    238 
    235 
    244 
    251 
    226 
    224 
    238 
    235 
    228 
    244 
    251 
    226 
    224 
    238 
    235 
    228 
    230
Как заставить StringList отображать данные корректно? Есть ли альтернатива  s.Add(IntToStr(o) + ' ');?  smile 

Это сообщение отредактировал(а) ЛеньПридумыватьНик - 7.3.2010, 18:18
PM MAIL   Вверх
Proxin
Дата 7.3.2010, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 363
Регистрация: 21.6.2008

Репутация: 1
Всего: 3



Код

procedure recode;
var si,so:stringlist;i,j:integer;s:string;
begin
si:=tstringlist.create;so:=tstringlist.create;
si.addstrings(form1.richedit1.lines);
for i:=0 to si.count-1 do begin
s:='';
for j:=1 to length(si[i]) do s:=s+inttostr(ord(s[i][j]))+' ';
so.add(s);
end;
form1.richedit2.text:='';form1.richedit2.lines.addstrings(so);
freeandnil(si);freeandnil(so);
end;

делал по-быстрому на коленке, но суть, думаю, ясна. а strlist.add добавляет не символ, а строку.

Это сообщение отредактировал(а) Proxin - 7.3.2010, 19:04
PM MAIL   Вверх
ЛеньПридумыватьНик
Дата 7.3.2010, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 7.3.2010

Репутация: нет
Всего: нет



При правке кода что выскакивает ошибка "Array type required" что в Вашем варианте
user posted image
что в моем:
user posted image
При попытке очистки списков вылетало Access at Violation
PM MAIL   Вверх
Matematik
Дата 8.3.2010, 01:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1027
Регистрация: 11.3.2006

Репутация: 7
Всего: 50



ЛеньПридумыватьНик, 

Сначало надо получить строку, а уже из неё брать символы
Код

{...}
z:= si[i];
for j:=1 to length(z) do 
  s:=s+inttostr(ord(z[j]))+' ';
so.add(s);
{...}


PM MAIL WWW ICQ   Вверх
Proxin
Дата 8.3.2010, 02:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 363
Регистрация: 21.6.2008

Репутация: 1
Всего: 3



у вас на картинке я вообще своего варианта не вижу.
PM MAIL   Вверх
ЛеньПридумыватьНик
Дата 8.3.2010, 10:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 7.3.2010

Репутация: нет
Всего: нет



Проблема решена, тема закрыта. Всем спасибо!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0426 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.