Просмотр текста постранично

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...
Dmitriy2003
Постоялец
Постоялец
 
Сообщения: 690
Зарегистрирован: 27.05.2003 (Вт) 22:47
Откуда: Deutschland

Просмотр текста постранично

Сообщение Dmitriy2003 » 09.04.2009 (Чт) 14:54

Задача:
Имеются тексты разного размера (до ~50 MB), загружаются в richedit

Вопрос:
Вопрос как можно эфекктивно реализовать постраничній просмотр,
как в MS Word

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

Заранее благодарен за идеи! :)

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Просмотр текста постранично

Сообщение MIT » 09.04.2009 (Чт) 16:38

На чем пишешь? NET или VB6?
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Просмотр текста постранично

Сообщение Хакер » 09.04.2009 (Чт) 17:14

Текст форматированный?

З.Ы. Автор, в каком городе живёшь?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Dmitriy2003
Постоялец
Постоялец
 
Сообщения: 690
Зарегистрирован: 27.05.2003 (Вт) 22:47
Откуда: Deutschland

Re: Просмотр текста постранично

Сообщение Dmitriy2003 » 12.04.2009 (Вс) 18:13

Привет!

Хакер
Я живу в германии.

MIT
я думаю что буду писать на NET, а есть ли идеии :?:

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Просмотр текста постранично

Сообщение MIT » 12.04.2009 (Вс) 18:18

Текст должен только показываться, или его необходимо редактировать/выделять ?
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Re: Просмотр текста постранично

Сообщение Williams » 12.04.2009 (Вс) 18:20

Dmitriy2003 писал(а):Хакер
Я живу в германии.


Хакер видимо потому и спросил, что увидел в профайле германию...
И вы думаете, что вас оставят в живых после прочтения этого поста?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Просмотр текста постранично

Сообщение Хакер » 12.04.2009 (Вс) 18:21

Да, меня именно город интересовал.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Dmitriy2003
Постоялец
Постоялец
 
Сообщения: 690
Зарегистрирован: 27.05.2003 (Вт) 22:47
Откуда: Deutschland

Re: Просмотр текста постранично

Сообщение Dmitriy2003 » 12.04.2009 (Вс) 18:24

Текст будет только показываться, но такие факторы как смена шрифта, размер окна, в конце концов разрешение экрана, мне пока не удалось соеденить воедино. Читать текст из файла не проблема - проблема синхронизация. Можете что нить подсказать, может есть ссылки на приблизительные примеры - не важно на каком языке

Хакер
город назыыается Dessau-Roßlau, Sachsen-Anhalt

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Просмотр текста постранично

Сообщение MIT » 12.04.2009 (Вс) 18:31

Dmitriy2003 писал(а):Текст будет только показываться, но такие факторы как смена шрифта, размер окна, в конце концов разрешение экрана, мне пока не удалось соеденить воедино. Читать текст из файла не проблема - проблема синхронизация. Можете что нить подсказать, может есть ссылки на приблизительные примеры - не важно на каком языке
Помнится, я маелся над подобной затеей. Если тебя этот вариант заинтересует, могу подчистить свой исходник и выложить тебе. Да, с момента последнего поста я многое доделал, в т.ч. форматирование колонок (добавлено позже: еще нормальный перенос по словам, несколько новых тегов, зачаток разбивки на страницы...)
Последний раз редактировалось MIT 12.04.2009 (Вс) 18:40, всего редактировалось 1 раз.
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: Просмотр текста постранично

Сообщение SLIM » 12.04.2009 (Вс) 18:34

Хакер писал(а):Да, меня именно город интересовал.

[offtopic]Шифровщик :wink:[/offtopic]
Пишите жизнь на чистовик.....переписать не удастся.....

Dmitriy2003
Постоялец
Постоялец
 
Сообщения: 690
Зарегистрирован: 27.05.2003 (Вт) 22:47
Откуда: Deutschland

Re: Просмотр текста постранично

Сообщение Dmitriy2003 » 12.04.2009 (Вс) 20:43

MIT писал(а):
Dmitriy2003 писал(а):Текст будет только показываться, но такие факторы как смена шрифта, размер окна, в конце концов разрешение экрана, мне пока не удалось соеденить воедино. Читать текст из файла не проблема - проблема синхронизация. Можете что нить подсказать, может есть ссылки на приблизительные примеры - не важно на каком языке
Помнится, я маелся над подобной затеей. Если тебя этот вариант заинтересует, могу подчистить свой исходник и выложить тебе. Да, с момента последнего поста я многое доделал, в т.ч. форматирование колонок (добавлено позже: еще нормальный перенос по словам, несколько новых тегов, зачаток разбивки на страницы...)


Буду очень признателен. :) :!:

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Просмотр текста постранично

Сообщение MIT » 12.04.2009 (Вс) 21:44

Думается, что свой парсер надо привести в подобающий вид. В том числе создать вменяемую внешнюю оболочку класса для нормальной инициализации; создать возможность отрисовки с произвольного места. разбития на листы и т.п. К тому же, запустив проект я обнаружил его в нерабочем состоянии из-за последней своей модификации :oops:

Dmitriy2003, денек тебе точно придется подождать. Ну это если желаешь получить это дело в юзабельном виде. Если хочешь, могу скинуть так, правда не думаю, что ты там с наскока разберешься :)
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Dmitriy2003
Постоялец
Постоялец
 
Сообщения: 690
Зарегистрирован: 27.05.2003 (Вт) 22:47
Откуда: Deutschland

Re: Просмотр текста постранично

Сообщение Dmitriy2003 » 13.04.2009 (Пн) 15:46

MIT писал(а):Dmitriy2003, денек тебе точно придется подождать. Ну это если желаешь получить это дело в юзабельном виде. Если хочешь, могу скинуть так, правда не думаю, что ты там с наскока разберешься :)


Как угодно, я готового решения все равно не ищу, ведь не факт что твой класс я смогу использовать у себя (даже в юзабельном виде). :)

Вот перемкнуло меня на одном факторе:

Представим что есть фаил 10 МБ, который я собираюсь читать по 40 строк (так нормальный экран 1280х1024, шрифт моноширный 10 пунктов.) идем далее пользователь просматривает страницы, дошел скажем до 100, тут ему в голову взбрело сменить шрифт на 14 пунктов, конечно размер клиентской области несколько уменьшиться и теперь вместо 40 строк есть 32, так пользователь пролистывает страницы обратно, и (получает компот на первой странице).....как это решенно в твоем классе... :?:

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Просмотр текста постранично

Сообщение MIT » 13.04.2009 (Пн) 16:09

Dmitriy2003 писал(а):как это решенно в твоем классе...
Пока не знаю. Как ты мог заметить, текст там изначально форматирован, в него изначально добавлены модификаторы.
Хотя вчера ночью я придумал довольно интересную систему, благодаря котороя можно буде изменять текст на ходу и т.п.

Теоретически увеличится тот текст, который находится на экране (в текущий момент), при этом первоначальный символ остается тем же...

В любом случае это еще доделывать надо :)
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Dmitriy2003
Постоялец
Постоялец
 
Сообщения: 690
Зарегистрирован: 27.05.2003 (Вт) 22:47
Откуда: Deutschland

Re: Просмотр текста постранично

Сообщение Dmitriy2003 » 13.04.2009 (Пн) 16:28

MIT писал(а):Пока не знаю. Как ты мог заметить, текст там изначально форматирован, в него изначально добавлены модификаторы.
Хотя вчера ночью я придумал довольно интересную систему, благодаря котороя можно буде изменять текст на ходу и т.п.


интересно будет на нее взглянуть, когда закончиш, ну и если решиш выложить. :roll:

Да уж, со одной стороны - я бы запретил пользователю менять шрифт в процессе просмотра - и все дела, (туда-же и размер формы) - вот с разрешением экрана сложнее, но эта политика изнасилования мозгов никуда не годиться, с другой стороны если прочитать фаил целиком - проблем с разбивкой не будет, но .NET оптимизирует это дело очень странно, так на фаил в 25 mb (кроме того что на его загрузку уходит около 10 секунд), еще и после закрытия формы до 400 MB памяти резервируется, что очень негативно сказывается на работе системы.

Мне кажется ворд грузит весь текст, что мне совсем не подходит, но ведь должен - же быть выход :)

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Просмотр текста постранично

Сообщение MIT » 13.04.2009 (Пн) 16:45

Dmitriy2003 писал(а):на фаил в 25 mb (кроме того что на его загрузку уходит около 10 секунд), еще и после закрытия формы до 400 MB памяти резервируется
Вполне допускаю мысль о частичной криворукости :)
Вообще 400 метров это слишком много (да и 10 секунд тоже, хотя это зависит от того что, куда и как ты загружаешь), ты что-то делаешь неправильно
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Dmitriy2003
Постоялец
Постоялец
 
Сообщения: 690
Зарегистрирован: 27.05.2003 (Вт) 22:47
Откуда: Deutschland

Re: Просмотр текста постранично

Сообщение Dmitriy2003 » 13.04.2009 (Пн) 17:07

MIT писал(а):Вполне допускаю мысль о частичной криворукости :)
Вообще 400 метров это слишком много (да и 10 секунд тоже, хотя это зависит от того что, куда и как ты загружаешь), ты что-то делаешь неправильно


что тут можно сделать неправильно :?:

Код: Выделить всё
string path = @"C:\MyGroßesText.txt";
FileStream stream = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.None);
this.richTextBox1.LoadFile(stream, RichTextBoxStreamType.PlainText);

// MIT -> неплохо было бы поток прибить...
stream.Close();  // Верь мне лучше не станет

this.Close();


Могу сделать мультик если очень хочеться :|
Последний раз редактировалось Dmitriy2003 13.04.2009 (Пн) 17:17, всего редактировалось 1 раз.

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Просмотр текста постранично

Сообщение MIT » 13.04.2009 (Пн) 17:12

Dmitriy2003 писал(а):что тут можно сделать неправильно
неплохо было бы поток прибить...
Как вариант - попробуй IO.File.ReadAllText, может получше будет :wink:
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Re: Просмотр текста постранично

Сообщение Williams » 13.04.2009 (Пн) 17:35

Любые большие файлы надо обрабатывать частями - все сразу не стоит
И вы думаете, что вас оставят в живых после прочтения этого поста?

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Re: Просмотр текста постранично

Сообщение Nord777 » 13.04.2009 (Пн) 18:36

на фаил в 25 mb (кроме того что на его загрузку уходит около 10 секунд), еще и после закрытия формы до 400 MB памяти резервируется
Стопудово Rich гадит.
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Re: Просмотр текста постранично

Сообщение Nord777 » 13.04.2009 (Пн) 18:54

Информация к размышлению.
Размер файла 49 мб
Код: Выделить всё
      Dim S As String = "C:\Documents and Settings\Nord777\Local Settings\Temp\VSMsiLog3FE8.txt"
      RichTextBox1.LoadFile(S, RichTextBoxStreamType.UnicodePlainText)

Отображение секунды за 3
Занимаемая память - 80мб

При попытке RichTextBox1.ScrollBars = RichTextBoxScrollBars.None - отожрал около 600 мб
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

Dmitriy2003
Постоялец
Постоялец
 
Сообщения: 690
Зарегистрирован: 27.05.2003 (Вт) 22:47
Откуда: Deutschland

Re: Просмотр текста постранично

Сообщение Dmitriy2003 » 14.04.2009 (Вт) 15:25

Williams писал(а):Любые большие файлы надо обрабатывать частями - все сразу не стоит

Этот пост как раз об этом!
Nord777 писал(а):Стопудово Rich гадит.

а кудаж еже целиком грузить :?:

Тема прекрасной работы NET Framework подробно раскрывается в следующем ролике:

Загрузка большого файла в RichEdit

Желающим посмотреть есть 10 свободных скачиваний.
XVID 1280x1024 24Bit RGB
MD5: C31B5AC8910005B1D6BCCEF0E9C329EE

Сама тема топика попрежнему не раскрыта, есть :idea: как наладить сихронизацию ?

Dmitriy2003
Постоялец
Постоялец
 
Сообщения: 690
Зарегистрирован: 27.05.2003 (Вт) 22:47
Откуда: Deutschland

Re: Просмотр текста постранично

Сообщение Dmitriy2003 » 19.04.2009 (Вс) 15:58

Привет!

что, смотрю тема никого не интересует :roll:

я тут кое что надумал, нужен совет а стоит ли продолжать в этом
направлении,или это тупик ?

p.s.
Просьба к коду не придераться (это все равно мысли в слух так сказать).
Что действительно важно - здоровая критика о логике программы. :)
Вложения
BigTextView.rar
Рабочий поток сознания
(98.43 Кб) Скачиваний: 50


Вернуться в Народный треп

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 74

    TopList  
cron