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

Вниз

Работа с 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.045 c
2-1179826391
alles
2007-05-22 13:33
2007.06.10
Работа с Array of Char


1-1176716998
well
2007-04-16 13:49
2007.06.10
BDS. Как создать иконку если нет ImageEditor


15-1179482976
Ega23
2007-05-18 14:09
2007.06.10
фармацефты - отзовитесь!


15-1179157796
matt
2007-05-14 19:49
2007.06.10
Росийская ОС


15-1178896830
Kerk
2007-05-11 19:20
2007.06.10
Керк в Москве





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский