Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.02.2011, 11:49   #11
vasyaRyzhyi
Пользователь
 
Регистрация: 27.02.2011
Сообщений: 10
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Ещё один повод не пользоваться этим тормозным TMemo
а для обработки строк использовать TStringList
TStringList никак.
Мне нужно 1:1 показать строчки текстового файла на экране.
Меньше 0x20 там встречаются только символы 0x0D и 0x0A.
vasyaRyzhyi вне форума Ответить с цитированием
Старый 28.02.2011, 13:01   #12
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

Тут глянь, внизу там есть старенькое TGSMemo, например

Цитата:
Unlimited text and line length (over 32Kb), gutter and right margin, hyperlinks mark-up, color settings for text foreground, background, selection and hyperlinks, highlighters and syntax parsers for HTML, find and replice procedures and events, text can be edited after the line end and many more...
(сам я с ним не работал)
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 28.02.2011, 13:45   #13
asmodey1
Подтвердите свой е-майл
 
Регистрация: 19.12.2010
Сообщений: 808
По умолчанию

Цитата:
Сообщение от vasyaRyzhyi Посмотреть сообщение
TStringList никак.
Мне нужно 1:1 показать строчки текстового файла на экране.
Меньше 0x20 там встречаются только символы 0x0D и 0x0A.
А что, ListBox как-то не один к одному отображает ?
Попробуйте:
Код:
procedure TForm1.BitBtn1Click(Sender: TObject);
var i: integer;
begin
for i:=0 to 50000 do
ListBox1.Items.Add(IntToStr(i));
end;
З.Ы. Да, а "борьба" с переносами в TListBox у нас уже была и мы победили...
http://programmersforum.ru/showthread.php?t=90991

Последний раз редактировалось asmodey1; 28.02.2011 в 13:58.
asmodey1 вне форума Ответить с цитированием
Старый 28.02.2011, 13:58   #14
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

asmodey1, коллега, Вы не разобрались.
Проблема не в том, чтобы отобразить 50 тысяч строк,
а в то, чтобы в одной строке отобразить несколько тысяч символов.

Цитата:
А что, ListBox как-то не один к одному отображает
час от часу не легче. ListBox вообще с Access vioaltion падает при попытке прочитать оттуда такую строку (выделено красным!!):
Код:
var s : AnsiString;
  i : integer;
begin
  SetLength(s, 5000);
  for i:=1 to 5000 do
    s[i] := '*';

  ShowMessage('Length s = '+InttoStr(Length(s)));

  ListBox1.Items.Clear;
  ListBox1.Items.Append(s);

  s := ListBox1.Items.Strings[0];
  ShowMessage('After ListBox Length s = '+InttoStr(Length(s)));

end;

vasyaRyzhyi, а зачем Вам такие строки отображать?!!
это далеко не всякий текстовый редактор позволит создавать/редактировать подобные файлы.
Уж очень специфичная задача у Вас получается... поэтому и решать её надо не стандартным образом!

Последний раз редактировалось Serge_Bliznykov; 28.02.2011 в 14:01.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 28.02.2011, 14:37   #15
vasyaRyzhyi
Пользователь
 
Регистрация: 27.02.2011
Сообщений: 10
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
а зачем Вам такие строки отображать?!!
это далеко не всякий текстовый редактор позволит создавать/редактировать подобные файлы.
Уж очень специфичная задача у Вас получается... поэтому и решать её надо не стандартным образом!
В том то и дело, что не знаю, с какой стороны подобраться.
Тестовый файл поднимается на экран и бухгалтер должен/а пометить кусок/и текста, из комбо выбрать e-mail и потом на батон нажать и этот кусок отправить, но между нажатием и отсылкой довольно сложную обработку заказали и после обработки на экране уже измененные строчки надо опять показать. Символы все хорошие, только конец строки, остальное нормальное.
vasyaRyzhyi вне форума Ответить с цитированием
Старый 28.02.2011, 14:50   #16
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Тестовый файл поднимается на экран
не может быть нормальный текстовый файл иметь длину строки больше 1000 символов! (я бы даже сказал более 200 символов, ну да ладно, пусть будет с пятикратным запасом!!)

Отсюда и пляшите!

вплоть до того, что при отображении разбивайте длинные строки на более короткие (т.е. вместо одной длинной показывайте 20 коротких)...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 28.02.2011, 14:59   #17
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

> ListBox вообще с Access vioaltion падает при попытке прочитать оттуда такую строку

хм, а у меня все ОК (в 7-ой).
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 28.02.2011, 15:41   #18
asmodey1
Подтвердите свой е-майл
 
Регистрация: 19.12.2010
Сообщений: 808
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
asmodey1, коллега, Вы не разобрались.
Проблема не в том, чтобы отобразить 50 тысяч строк,
а в то, чтобы в одной строке отобразить несколько тысяч символов
Не вяжется с
Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
не может быть нормальный текстовый файл иметь длину строки больше 1000 символов! (я бы даже сказал более 200 символов, ну да ладно, пусть будет с пятикратным запасом!!)
вплоть до того, что при отображении разбивайте длинные строки на более короткие (т.е. вместо одной длинной показывайте 20 коротких)...
А я разве не предложил разбиение строк ?
Даже ссылочку дал...
asmodey1 вне форума Ответить с цитированием
Старый 28.02.2011, 17:17   #19
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от veniside
Цитата:
Сообщение от Serge_Bliznykov
ListBox вообще с Access vioaltion падает при попытке прочитать оттуда такую строку
хм, а у меня все ОК (в 7-ой).
Подтверждаю Ваши слова. в Delphi 5 выдаёт Access violation
тот же код под Borland Delphi 2006 работает (и строка не обрезается, кстати!)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 01.03.2011, 10:41   #20
vasyaRyzhyi
Пользователь
 
Регистрация: 27.02.2011
Сообщений: 10
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
не может быть нормальный текстовый файл иметь длину строки больше 1000 символов! (я бы даже сказал более 200 символов, ну да ладно, пусть будет с пятикратным запасом!!)

Отсюда и пляшите!

вплоть до того, что при отображении разбивайте длинные строки на более короткие (т.е. вместо одной длинной показывайте 20 коротких)...
Заказчик требует 5000 в строке, говорит, что купит большоооой экран и вообще это его проблемы.
Мне самое простое поднять в стинглист и потом резать, клеить т.д.
Так я понял, что решения нет
ОК, попробую уговорить на 4000 хотя бы, чтобы richedit использовать.
vasyaRyzhyi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TMemo George2010 Компоненты Delphi 1 01.09.2010 17:16
TMemo Valera Помощь студентам 14 04.08.2008 10:56
TMemo terminadoor Помощь студентам 10 23.07.2008 19:41
Tmemo BlackOmen Общие вопросы Delphi 2 16.03.2008 21:03