Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.04;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.036 c
1-1079598011
Jao Dao Dzen
2004-03-18 11:20
2004.04.04
время между двумя событиями


1-1079077976
Fame
2004-03-12 10:52
2004.04.04
Вывод строк БЕЗ незначащих пробелов.


3-1078651599
Masha Streltsova
2004-03-07 12:26
2004.04.04
Ни как не получается вставить долбанный ComboBox в DBGrid


1-1079074966
Yuri Btr
2004-03-12 10:02
2004.04.04
Область видимости свойств класса


4-1074780696
неуловимый джо
2004-01-22 17:11
2004.04.04
Поиск хэндла контрола под курсором