Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];

Вниз

TMemo не грузит весь файл...   Найти похожие ветки 

 
ZaKaZ ©   (2004-03-12 23:07) [0]

Есть ряд текстовых файлов - гружу инфу из них в Оракл, предварительно загружая в TMemo. Всё ничё, но попадаются файлы, которые
процедура TMemo.lines.loadfromfile() грузит наполовину примерно (ну во всяком случае не весь файл). Например размер файла около 16 мб (54 записи) а грузится около 28000 зап., причём обрыв идёт в середине строки.
Следущий файл размером 25 мб грузится в TMemo весь без проблем. В чём проблема? Пробовал и на работе и дома - петрушка одинаковая...
(Попробовал с RichEdit"ом - тут всё ок, но файл грузится ну очень долго...)


 
Defunct ©   (2004-03-12 23:15) [1]

попробуйте:

Memo.WordWarp := False;

Зы, а файл тот что 16Mb часом не содержит каких-то спец символов, например #0?


 
Юрий Зотов ©   (2004-03-12 23:21) [2]

> ZaKaZ ©   (12.03.04 23:07)

Причина, вероятно, в том, что в теле файла попадается символ #0. То есть, он как раз НЕ текстовый.

Почему Вы решили, что он текстовый? Только потому, что в нем виден текст? Так текст и в EXE-файлах тоже виден, но текстовыми они от этого не становятся.

И совершенно непонятно, зачем ВИЗУАЛЬНЫЕ компоненты использовать для загрузки файла в БД.

А еще существуют TFileStream и TBlobStream, в которых нет проблемы "текстовый-нетекстовый". Им это все равно.


 
Defunct ©   (2004-03-12 23:22) [3]

очепятка: WordWrap


 
Defunct ©   (2004-03-12 23:27) [4]

Юрий Зотов ©   (12.03.04 23:21) [2]
Ну.. может быть просто сбой.

Иногда в результате сбоя в исконно текстовый файл попадает бог знает что. Неоднократно замечал подобное в LOG файлах MS-FTP и WinRoute. А файлы-то по определению текстовые, тока вот размер в >10Mb не позволяет наглядно определить места сбоя.


 
Юрий Зотов ©   (2004-03-12 23:34) [5]

> Defunct ©   (12.03.04 23:27) [4]

> Ну.. может быть просто сбой.
"Пробовал и на работе и дома - петрушка одинаковая..."

> размер в >10Mb не позволяет наглядно определить места сбоя.
Существуют HEX-редакторы, а в них - поиск.


 
Defunct ©   (2004-03-12 23:44) [6]

> "Пробовал и на работе и дома - петрушка одинаковая..."
Дык.. один и тот же файл пробовать, и у друзей сбоить будет ;)

> Существуют HEX-редакторы, а в них - поиск.
Да, но это когда уже известно, что сбой был. А так просто доверяешь "эмиджу" (C) кто-то, MS
;)


 
Юрий Зотов ©   (2004-03-12 23:55) [7]

> Defunct ©   (12.03.04 23:44) [6]

Все равно, сути это не меняет. Если в текстовый файл попало "бог знает что", то он уже не текстовый. И сказанное остается в силе.


 
Anatoly Podgoretsky ©   (2004-03-13 00:02) [8]

Это не может быть причиной, точно также не загрузился бы и в RichEdit
Возможно не верно установено свойство MaxLength


 
Defunct ©   (2004-03-13 00:17) [9]

Anatoly Podgoretsky ©   (13.03.04 00:02) [8]
Я абсолютно уверен, что #0 может быть причиной такого поведения в Memo. Если вам интерсно убедиться, возьмите любой текстовый файл, понемяйте в нем любой символ на #0 и попробуйте загрузить в Memo и в RichEdit. Результат налицо, в RichEdit загружается все, в Memo загрузка приостанавливается на первом символе #0.


 
ZaKaZ ©   (2004-03-13 07:19) [10]

Да, файлы не текстовые - ошибся.
TFileStream и TBlobStream не подходит так как TMemo использую, чтобы отображать незагрузившиеся в Оракл записи, а также их коррекию для повторной загрузки...
Так что же делать? Менять TMemo? (если да то на какой) или править файлы?


 
ZaKaZ ©   (2004-03-13 07:20) [11]

кстати WordWrap - false


 
Gero ©   (2004-03-13 09:00) [12]

TMemo, как и RichEdit не предназначен для больших файлов.
Вот SynEdit - другое дело, с ним проблем возникнуть не должно.


 
MBo ©   (2004-03-13 09:33) [13]

>как и RichEdit
Ты неправ.


 
Юрий Зотов ©   (2004-03-13 09:36) [14]

> ZaKaZ ©   (13.03.04 07:19) [10]

IMHO, надо все же пересмотреть подход. Вы бы обрисовали задачк подробнее - что за файлы, чем они создаются, что конкретно должен видеть юзер и т.д.

Ведь, согласитесь, от показа юзеру файла размером в десятки мегабайт все равно нет никакого толку - он даже просматривать такой файл не станет. Показывать надо что-то другое.


 
Anatoly Podgoretsky ©   (2004-03-13 12:20) [15]

Gero ©   (13.03.04 09:00) [12]
Неверно, и тот и другой предназначены, только у Мемо есть ограничение по ОС, а у второго нет, до 2 гб. Но в указаннной ОС это не принципиально.

ZaKaZ ©   (13.03.04 07:19) [10]
Загружать файлы в визуальный редактор для обработки не совсем правильно, туда надо загрузить только необходимое. Саму обработку файла надо вести каким то либо другим образом. Каким лучше, нельзя сказать без более подробной информации о файлах и о задаче, как определяется какие записи не обработались и каким обрахом они идентифицируются. А не текстовые файлы загружать в текстовый редактор совсем не верно, он только для текстовых.


 
Gero ©   (2004-03-13 13:56) [16]

> >как и RichEdit
> Ты неправ.

> Неверно, и тот и другой предназначены, только у Мемо есть
> ограничение по ОС, а у второго нет, до 2 гб. Но в указаннной ОС
> это не принципиально.

Я не это имел ввиду. У RichEdit ограничения нет, но загрузите в него большой файл...
Редактировать его будет просто невозможно.


 
Anatoly Podgoretsky ©   (2004-03-13 14:39) [17]

Да ососбенно когда памяти 129 мегабайт, так что не удивительно. Но скажем 25 мегабайт вполне нормально. RichEdit требует примерно в три раза больше, чем размер файла.


 
Petr V. Abramov ©   (2004-03-13 15:11) [18]

> TFileStream и TBlobStream не подходит так как TMemo использую,
> чтобы отображать незагрузившиеся в Оракл записи, а также их
> коррекию для повторной загрузки...
 Если это надо понимать так, что у Вас есть 25М данных, вы их заливаете, что не проходит, и это что-то надо править - тогда вот только незалившиеся и показывайте. Если эти 25М - это уже 25М незалившихся данных - такую уйму нетекстовых данных править в текстовом редакторе - на Вашей совести потенциальный труп :)


 
Defunct ©   (2004-03-13 20:28) [19]

> Так что же делать? Менять TMemo? (если да то на какой) или править файлы?

1. Править файлы;
2. написать собственную процедуру загрузки файла, которая будет добавлять в Memo только текстовые строки.


 
Юрий Зотов ©   (2004-03-13 21:23) [20]

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

Отображение - не обязательно в Memo. На Memo свет клином не сошелся. Возможно, удобнее будет какой-нибудь Grid или еше что-то.


 
Dimaxx ©   (2004-03-14 01:55) [21]

А на кой Memo, чет не пойму? TStringList не подходит? Он понимает любые окончания строки и может держать в себе довольно большие объемы текстов.


 
Fay ©   (2004-03-14 02:18) [22]

А на кой нужен TSringList?! Нахрена ваще грузить сразу весь файл?
И скажите еще, ораклу в Memo данные лучше видно, что-ли?


 
Плохиш   (2004-03-14 02:20) [23]

Во молодёжь пошла! BMP в мемо загрузить им уже мало стало, теперь они любые нетекстовые файлы загружают :-)
Как там с местом в орешнике? ;-)


 
ZaKaZ   (2004-03-14 22:32) [24]

Да с текстовыми файлами я загнул - не текстовые они. А вот конкретней...
Бы ла задача "Депозитарий" которая крутилась на mainframe"e. Тачке больше 20 лет - диски начали сыпаться. И всю инфу из базы срочным образом сгрузили в файлы. Кто и как и чем грузил незнаю. А мне вот всё заливать в Оракл приказали. А с помощью Мемо визуально удобней следить за загрузкой. Сначала гружу весь файл, а потом оставляю только строки не пролазившие в Оракл.
Воспользовался SynEdit, - всё грузит и довольно быстро.
Благодарю за помощь.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.51 MB
Время: 0.038 c
1-1079330022
senator
2004-03-15 08:53
2004.04.04
Работа с DLL


7-1074239041
Max_222
2004-01-16 10:44
2004.04.04
Как лучше заблокировать txt-файл...


3-1078470164
bushmen
2004-03-05 10:02
2004.04.04
ADOStoredProc


1-1079689256
eXtreme
2004-03-19 12:40
2004.04.04
Перенаправление текста из консоли в Memo


14-1078946265
Maxim Vetera
2004-03-10 22:17
2004.04.04
ПППП!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский