Форум: "Основная";
Текущий архив: 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