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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как поставить символ в конце строки в мемо? как поставить запятую в конце строки 
:(
    Опции темы
LeonW
  Дата 27.3.2009, 17:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



привет всем!!! делаю так - 
Код

nk:=memo2.lines.count;
for zp:=0 to nk-2 do
Memo2.Lines.Strings[zp] := Memo2.Lines.Strings[zp] + ',';

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

PM MAIL   Вверх
Matematik
Дата 27.3.2009, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Так будет быстрее
Код

Memo2.Lines.BeginUpdate;
try
{тут код}
finally
  Memo2.Lines.EndUpdate;
end


Еще если в цыкл добавить Application.ProcessMessage; - не будет виснуть, но работать будет сильно медленее
PM MAIL WWW ICQ   Вверх
LeonW
Дата 27.3.2009, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



нет не помогло ни как, если больше 200,000 или 400,000 строк - то все замерло.
PM MAIL   Вверх
Matematik
Дата 27.3.2009, 20:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Мемо какбэ не предназначен для обработки большого объема данных.
Тут лучше пользоваться TStringList.
PM MAIL WWW ICQ   Вверх
LeonW
  Дата 27.3.2009, 23:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



как привезать его к progressbar_
Код

var
  sl:TStringList;
  i,nm:integer;
begin
  sl:=TStringList.Create;
  try
    sl.Text:=Memo2.Text;
    for i:=0 to sl.count-2 do
      sl[i]:=sl[i]+',';
    Memo2.Text:=sl.Text;
    nm:=100 div sl.count;
    progressbar2.Position:=sl.count* nm ;
  finally
    sl.Free;
  end;

спасибо!

PM MAIL   Вверх
AntonN
Дата 27.3.2009, 23:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



LeonW, прогрессбар сразу покажет с 0% до 100%. В цикл его надо, и processmessages; не забыть


--------------------
user posted image
PM MAIL WWW   Вверх
LeonW
Дата 27.3.2009, 23:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



тормазить вся программа будет? как толькр ставлью чтобы пргогресс бар начинает опять виснуть,
или ничего не записывает в memo

Это сообщение отредактировал(а) LeonW - 27.3.2009, 23:17
PM MAIL   Вверх
AntonN
Дата 27.3.2009, 23:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



мемо не для 400к строчек, это визульный контрол, обычно юзерам просто не показывают их все разом smile
поставь задачу по другому - есть файл, и в файле к каждой строке нужно добавить символ? тогда просто файл читается блоками, находится конец строки, добавляется символ и записывается в другой файл (либо в память, а оттуда сохраняется на диск).


--------------------
user posted image
PM MAIL WWW   Вверх
Akella
Дата 28.3.2009, 00:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



Я когда-то сделал немного по другому. Загружал только часть файла в мемо, чтобы пользователь мог посмотреть визуально на содержимое. Если всё было в порядке, то обработка шла именно в
Цитата(Matematik @  27.3.2009,  20:58 Найти цитируемый пост)
TStringList.


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.0831 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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