Текущий архив: 2007.06.10;
Скачать: CL | DM;
ВнизРабота с Array of Char Найти похожие ветки
← →
alles © (2007-05-22 13:33) [0]Здраствуйте.
У меня есть вопрос по производительности программы.
1. Есть один array of byte[1..2048] (из файла заполняю его). В нем хранится Char-ы(символы и буквы). Нужно найти только слова из него. Как быстрее это делать?
Делаю так:
Buf:array of byte[1..2048];
for i:=1 to 2048 do
if (Buf[i] in ["A".."Z","a".."z"]) then
// буква
else //не буква
При больших размером файла очень много работает.
И 2 - й вопрос:
Что быстрее будет работать:
if Not(c in ["A".."Z","a".."z"]) then или
o:=Ord(aBuf[i]);
if ((o>64) and (o<91)) or((o>96)) then
Спасибо
← →
alles © (2007-05-22 13:35) [1]сорри: array of char[1..2048]
← →
iXT © (2007-05-22 13:39) [2]Что за бред?
Читай файл по байтам, и анализируй сразу
И причем тут размер файла, если ты анализируешь массив?
← →
Правильный Вася (2007-05-22 13:43) [3]ты на русском напиши, а не на даунском
← →
Dr.M@$ © (2007-05-22 13:43) [4]Согласен. Сделай норматьный файл
← →
alles © (2007-05-22 13:43) [5]Читай файл по байтам
я и так читаю по байтам.
И причем тут размер файла, если ты анализируешь массив?
так я читаю по одному байту, а блоками
← →
alles © (2007-05-22 13:44) [6]так я не читаю по одному байту, а блоками
← →
Dr.M@$ © (2007-05-22 13:46) [7]если у тебя там какой то текст то загрузи его в string или memo а потом там по буквам читай
← →
Dr.M@$ © (2007-05-22 13:48) [8]например if "A"=copy(string,1,n) then
а можно сразу вырожениями :)
if "ABCD"=copy(string,4,n) then
← →
Jeer © (2007-05-22 13:50) [9]
> Что быстрее будет работать:
> if Not(c in ["A".."Z","a".."z"]) then или
> o:=Ord(aBuf[i]);
> if ((o>64) and (o<91)) or((o>96)) then
Так проверь.
2. Сделай массив констант arB[0..255] of boolean и заполни True/False в соответствии с твоим пониманием символов
Далее
if arB[ord(Buf[i])] then
Проверка на скорость - домашнее задание.
← →
Dr.M@$ © (2007-05-22 13:51) [10]угу а потом результаты изложеш нам :)
← →
alles © (2007-05-22 14:04) [11]Ребята, я обьясню ситуацию. Надо написАть программу которая должна создать базу данных из слов которые находятся в файлх которые юзер выбрал. По скольку эти файлы могут быть и не текстовые (например *.DOC,*.XLS...) то я открываю файл и читаю его блоками (2048 bytes) в array of char. Проблема как быстрее из масива прочитать только слова
← →
Johnmen © (2007-05-22 14:11) [12]
> Проблема как быстрее из масива прочитать только слова
Последовательным перебором байтов с анализом Jeer © (22.05.07 13:50) [9]
← →
umbra © (2007-05-22 15:35) [13]
> По скольку эти файлы могут быть и не текстовые (например
> *.DOC,*.XLS...) то я открываю файл и читаю его блоками
> (2048 bytes) в array of char.
и чем это помогает? там нет текста в том виде, в каком он есть в текстовых файлах.
> Проблема как быстрее из масива прочитать только слова
задача не тривиальная :) Надо ж еще различить, где в документе именно текст, а не объекты, стили и т.д., узнать, где он начинается и где заканчивается и, наконец, преобразовать его к читаемому виду.
← →
Jeer © (2007-05-22 15:53) [14]
> umbra © (22.05.07 15:35) [13]
Не ломай челу кайф - пусть сделает хотя бы что-то работающее, а там, глядишь, понимание придет или появятся следующие вопросы:)
← →
Плохиш © (2007-05-22 16:50) [15]йфгсдфг йдсгфйк сдлфртеуи йхгкыхгциу3249726359 иугдсфклгудфи йкхндфдл
Вопрос: сколько здесь слов и нужны ли они кому-нибуть? :-P
← →
Jeer © (2007-05-22 17:23) [16]Плохиш © (22.05.07 16:50) [15]
Здесь много слов и некоторые из них нехорошие.
Это я тебе как специалист по языку гуингмов говорю.
← →
Плохиш © (2007-05-22 17:34) [17]
> Jeer © (22.05.07 17:23) [16]
> Плохиш © (22.05.07 16:50) [15]
>
> Здесь много слов и некоторые из них нехорошие.
> Это я тебе как специалист по языку гуингмов говорю.
Блин, это ж меня теперь забанят 8-O
Надо же, на специалиста нарваться :-( думал здесь больше никто этот язык не знает...
← →
Sinus © (2007-05-22 17:58) [18]
> могут быть и не текстовые (например *.DOC,*.XLS...)
определяй какой тип файла открываешь.. и не будет проблем
а на счет текста то проще определять во время чтения файла
← →
Anatoly Podgoretsky © (2007-05-22 19:46) [19]> Плохиш (22.05.2007 17:34:17) [17]
Не волнуйся, забаним за перевод.
← →
Anatoly Podgoretsky © (2007-05-22 19:47) [20]> alles (22.05.2007 14:04:11) [11]
И ты уже сумел извлекать текст из Ворда и Экселя, а такая малость не получается.
Страницы: 1 вся ветка
Текущий архив: 2007.06.10;
Скачать: CL | DM;
Память: 0.49 MB
Время: 0.045 c