Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.51 MB
Время: 0.022 c
15-1179214537
Флудер :)
2007-05-15 11:35
2007.06.10
Нужна анимированная картинка книги


15-1179415426
Карелин Артем
2007-05-17 19:23
2007.06.10
Меня попросили обьяву разместить.


3-1174363086
Lex_!
2007-03-20 06:58
2007.06.10
Заголовки в гриде


2-1179834805
IgorMish
2007-05-22 15:53
2007.06.10
Как записать картинку в Paradox


2-1179799348
unnamed777
2007-05-22 06:02
2007.06.10
как убить процесс??