Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.01.28;
Скачать: CL | DM;

Вниз

строки   Найти похожие ветки 

 
user'S ©   (2007-01-08 14:41) [0]

каким образом в строке символов выписать слово стоящее на втором месте.
просьба, если можно, подскажите как организовать поиск перебором символов. Проблема возникла с присвоением переменной значения строки в N-символов,


 
kaZaNoVa ©   (2007-01-08 14:46) [1]

pos


 
kaZaNoVa ©   (2007-01-08 14:47) [2]

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(ansilowercase(a[f]), ansilowercase(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.



 
Virgo_Style ©   (2007-01-08 15:17) [3]

[1],[2]
Я понимаю твою гордость, но не стоит демонстрировать ее хотя бы там, где она не к месту.

user"S ©   (08.01.07 14:41)
каким образом в строке символов выписать слово стоящее на втором месте.

В простейшем случае - найти первый пробел, все, что между ним и вторым пробелом - второе слово. Усложняя - надо игнорировать пробелы в начале строки, несколько пробелов подряд воспринимать как один, наконец, ряд символов тоже считать "пробелами".

user"S ©   (08.01.07 14:41)
Проблема возникла с присвоением переменной значения строки в N-символов

э-э-э... S:=copy(...,...,N) ?


 
Zorro2001 ©   (2007-01-09 03:51) [4]

В простейшем случае - найти первый пробел, все, что между ним и вторым пробелом - второе слово
вместо пробела ищем символ  :

begin
   GetMem(ch, 1000000);
   AssignFile(fs,"sys.txt");
   Reset (fs);
   While not Eof(fs) do
    begin
     Readln(fs,str);
     OemToChar(PChar(str),ch);
     str2:=StrPas(ch);
     int:=Pos(":", str2);
     str1:=copy(str2,1,int);
     str3:=copy(str2,int+1,100);
     VLE.InsertRow(str1,Trim(str3),True);
    end;
  end;
 CloseFile(fs);
 FreeMem(ch, 1000000);


 
Джо ©   (2007-01-09 03:53) [5]

> просьба, если можно, подскажите как организовать поиск перебором
> символов. Проблема возникла с присвоением переменной значения
> строки в N-символов,

Ну, какая же это проблема? Вот у меня проблема — график сна пошел коту под хвост :(

Перебо символов строки:
var
 Ch: Char;
for I := 1 to Length(S) do
begin
 Ch := S[I]
end;


 
Palladin ©   (2007-01-09 03:54) [6]


> [4] Zorro2001 ©

что такое fs?
что такое ch?
что такое str?
что такое VLE?
причем здесь поиск : ?
и вообще что это за бред?


 
Джо ©   (2007-01-09 03:55) [7]

> [6] Palladin ©   (09.01.07 03:54)
> и вообще что это за бред?

Особенно интересна строка GetMem(ch, 1000000), она мне до того понравилась, что теперь точно не усну :)


 
Palladin ©   (2007-01-09 03:56) [8]


> [5] Джо ©

такая же фигня :(, как ты мог заметить, нарыл вот про что и чего...

http://www.medeor.ru/Melatonin_Plus.htm

завтра, точнее сегодня возьму и проведу эксперимент


 
Джо ©   (2007-01-09 03:58) [9]

> [8] Palladin ©   (09.01.07 03:56)
> http://www.medeor.ru/Melatonin_Plus.htm

Гм.
«Ей-богу, решусь!» (c) проф. Преображенский
:)


 
Zorro2001 ©   (2007-01-09 04:20) [10]


> Palladin ©  [6]

fs:TextFile
ch:PChar
str, str2, str1, str3:string
VLE: TValueListEditor
Особенно интересна строка GetMem(ch, 1000000), она мне до того понравилась, что теперь точно не усну :)
резервирование памяти для работы со строками.
BD7 иногда тупит без этого..


 
Anatoly Podgoretsky ©   (2007-01-09 15:16) [11]

> Zorro2001  (09.01.2007 04:20:10)  [10]

Выбрось весь этот код и пиши с начала.


 
Zorro2001 ©   (2007-01-10 02:07) [12]


> Anatoly Podgoretsky ©   (09.01.07 15:16) [11]


А зачем если он работает и никаких проблем с ним нету...


 
ors_archangel ©   (2007-01-10 02:24) [13]


>  FreeMem(ch, 1000000);


FreeMem(ch);

- надо же оправдывать 8 байт заголовка блоков MM


 
user'S ©   (2007-01-10 11:45) [14]

Удалено модератором


 
user'S ©   (2007-01-10 11:46) [15]

Удалено модератором


 
user'S ©   (2007-01-10 11:48) [16]

Удалено модератором



Страницы: 1 вся ветка

Текущий архив: 2007.01.28;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.104 c
6-1156605057
kernel
2006-08-26 19:10
2007.01.28
WOL


2-1168131771
Antoxa2005
2007-01-07 04:02
2007.01.28
Подскажите, а какой контейнер имеет вертикальную прокрутку?


15-1167335262
Real
2006-12-28 22:47
2007.01.28
Что мешает Гуглу реализовать внутрифайловый поиск?


15-1168298335
Робот Вертер
2007-01-09 02:18
2007.01.28
Программистов в 2020 году заменят роботы


6-1156604920
mr. Eof
2006-08-26 19:08
2007.01.28
Проблема с TidHTTP метод PUT