Форум: "Прочее";
Текущий архив: 2007.01.21;
Скачать: [xml.tar.bz2];
ВнизПрога поиска подстроки в строках и с исключениями Найти похожие ветки
← →
kaZaNoVa © (2006-12-27 19:42) [0]Просьба покритиковать ;)
program Project1; //Прога поиска подстроки в строках и с исключениями.
uses SysUtils, windows;
const
fVvod = "log.txt";
fSearch = "Search.txt";
fResult_y = "Result_yes.txt";
fResult_n = "Result_not.txt";
var
f_inData, f_Search, f_Result_y, f_Result_n: textfile;
a: array[1..70000] of string;
info: string; l, k, n, h, p: int64;
{$R *.res}
function CompareSearch: Boolean;
var f: integer;
begin
Result := True;
for f := 1 to l do if pos(lowercase(a[f]), lowercase(info)) > 0 then exit;
Result := False;
end;
begin
if not (FileExists(fVvod) and FileExists(fSearch)) then
begin
MessageBox(0, "Нет файлов ввода данных"#13#10#13#10 + fVvod + #13#10 + fSearch, "Ошибка работа программы невозможна", 0);
Halt(1);
end;
p := gettickcount;
QueryPerformanceFrequency(h); // HiTicks / second
QueryPerformanceCounter(k);
AssignFile(f_inData, fVvod);
AssignFile(f_Search, fSearch);
AssignFile(f_Result_y, fResult_y);
AssignFile(f_Result_n, fResult_n);
Reset(f_Search);
l := 0;
while (not eof(f_Search)) do begin
inc(l);
Readln(f_Search, a[l]);
end;
CloseFile(f_Search);
Reset(f_inData);
ReWrite(f_Result_y);
ReWrite(f_Result_n);
while (not eof(f_inData)) do begin
Readln(f_inData, info);
if CompareSearch then Writeln(f_Result_y, info) else Writeln(f_Result_n, info);
end; //info
CloseFile(f_inData);
CloseFile(f_Result_y);
CloseFile(f_Result_n);
QueryPerformanceCounter(n);
MessageBox(0, "Готово", Pchar(Inttostr(gettickcount - p) + " ms (" + (Inttostr(round(1000000 * (n - k) / h))) + ") microsec"), 0);
end.
← →
kaZaNoVa © (2006-12-27 19:45) [1]и это ... ищу функцию для lowercase понимающую русский язык ;) вот)
← →
Kerk © (2006-12-27 19:47) [2]> [1] kaZaNoVa © (27.12.06 19:45)
ansilowercase
← →
oldman © (2006-12-27 19:48) [3]
> function CompareSearch: Boolean;
> var f: integer;
> begin
> Result := True;
>
> for f := 1 to l do if pos(lowercase(a[f]), lowercase(info))
> > 0 then exit;
>
> Result := False;
> end;
Что обязательно вот так вот выпендриваться?
← →
kaZaNoVa © (2006-12-27 19:54) [4]oldman © (27.12.06 19:48) [3]
а в чем, на Ваш взгляд минус такой реализации?
Kerk © (27.12.06 19:47) [2]
thnx. fixed.
← →
oldman © (2006-12-27 19:56) [5]
> kaZaNoVa © (27.12.06 19:54) [4]
> oldman © (27.12.06 19:48) [3]
> а в чем, на Ваш взгляд минус такой реализации?
тем, что вместо вызова функции можно этот if и вставить...
← →
kaZaNoVa © (2006-12-27 20:01) [6]oldman © (27.12.06 19:56) [5]
имхо в ввиде функции красивее смотрицо)
но интересно, падает ли тут производительность ....
← →
kaZaNoVa © (2006-12-27 20:03) [7]и вопрос про
a: array[1..70000] of string;
почему-то слишком большие числа компилятор отказывался компилить .. остановился на 70К ..:)
← →
oldman © (2006-12-27 20:04) [8]
> kaZaNoVa © (27.12.06 20:01) [6]
> oldman © (27.12.06 19:56) [5]
> имхо в ввиде функции красивее смотрицо)
Ага
c:=summ(a,b);
function summ (integer a,b);
Result:=a+b;
end;
← →
Palladin © (2006-12-27 20:04) [9]и прямо так ничего и не сказал? просто грит не буду, у меня сегодня критические дни?
← →
kaZaNoVa © (2006-12-27 20:06) [10]Palladin © (27.12.06 20:04) [9]
не он что-то некультурное по англ написал .. типа ненравится ему ..
← →
Palladin © (2006-12-27 20:07) [11]ааа... это другое дело.
← →
kaZaNoVa © (2006-12-27 20:10) [12]Palladin © (27.12.06 20:07) [11]
что-то типа такого:
[Error] Project1.dpr(10): Ordinal type required
как побороть-не знаю
← →
Palladin © (2006-12-27 20:12) [13]так это ты парень где то что то не правильно написал, и дело совсем не в 70000 ...
← →
kaZaNoVa © (2006-12-27 20:14) [14]Palladin © (27.12.06 20:12) [13]
ага, это если написать 7000000000000
← →
Palladin © (2006-12-27 20:16) [15]нууу в win32 теоретически процесс может захватить 4gb, практически чуть более 2gb
вот и думай сколько ноликов ты понабрал...
← →
Palladin © (2006-12-27 20:18) [16]забыл добавить... ординал тайпом в d32 считается число в пределах 0-2^32
либо соответствущего размера со знаком...
считай нолики короче
← →
kaZaNoVa © (2006-12-27 20:28) [17]Palladin © (27.12.06 20:18) [16]
зато я смог добицца такой ошибки:))))
;)
← →
Anatoly Podgoretsky © (2006-12-27 20:40) [18]> kaZaNoVa (27.12.2006 20:06:10) [10]
И он тебя послал, а ты направление забыл спросить.
← →
kaZaNoVa © (2006-12-28 18:12) [19]а что еще мона сделать?
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2007.01.21;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.044 c