![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
строки [XP]
user'S © (2007-01-08 14:41:00)каким образом в строке символов выписать слово стоящее на втором месте.
просьба, если можно, подскажите как организовать поиск перебором символов. Проблема возникла с присвоением переменной значения строки в N-символов,
user'S (2007-01-10 11:48:00) [1]Удалено модератором
user'S (2007-01-10 11:46:00) [2]Удалено модератором
user'S (2007-01-10 11:45:00) [3]Удалено модератором
ors_archangel (2007-01-10 02:24:00) [4]
> FreeMem(ch, 1000000);
FreeMem(ch);
- надо же оправдывать 8 байт заголовка блоков MM
Zorro2001 (2007-01-10 02:07:00) [5]
> Anatoly Podgoretsky © (09.01.07 15:16) [11]
А зачем если он работает и никаких проблем с ним нету...
Anatoly Podgoretsky (2007-01-09 15:16:00) [6]> Zorro2001 (09.01.2007 04:20:10) [10]
Выбрось весь этот код и пиши с начала.
Zorro2001 (2007-01-09 04:20:00) [7]
> Palladin © [6]
fs:TextFile
ch:PChar
str, str2, str1, str3:string
VLE: TValueListEditor
Особенно интересна строка GetMem(ch, 1000000), она мне до того понравилась, что теперь точно не усну :)
резервирование памяти для работы со строками.
BD7 иногда тупит без этого..
Джо (2007-01-09 03:58:00) [8]> [8] Palladin © (09.01.07 03:56)
> http://www.medeor.ru/Melatonin_Plus.htm
Гм.
«Ей-богу, решусь!» (c) проф. Преображенский
:)
Palladin (2007-01-09 03:56:00) [9]
> [5] Джо ©
такая же фигня :(, как ты мог заметить, нарыл вот про что и чего...
http://www.medeor.ru/Melatonin_Plus.htm
завтра, точнее сегодня возьму и проведу эксперимент
Джо (2007-01-09 03:55:00) [10]> [6] Palladin © (09.01.07 03:54)
> и вообще что это за бред?
Особенно интересна строка GetMem(ch, 1000000), она мне до того понравилась, что теперь точно не усну :)
Palladin (2007-01-09 03:54:00) [11]
> [4] Zorro2001 ©
что такое fs?
что такое ch?
что такое str?
что такое VLE?
причем здесь поиск : ?
и вообще что это за бред?
Джо (2007-01-09 03:53:00) [12]> просьба, если можно, подскажите как организовать поиск перебором
> символов. Проблема возникла с присвоением переменной значения
> строки в N-символов,
Ну, какая же это проблема? Вот у меня проблема — график сна пошел коту под хвост :(
Перебо символов строки:
var
Ch: Char;
for I := 1 to Length(S) do
begin
Ch := S[I]
end;
Zorro2001 (2007-01-09 03:51:00) [13]В простейшем случае - найти первый пробел, все, что между ним и вторым пробелом - второе слово
вместо пробела ищем символ :
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);
Virgo_Style (2007-01-08 15:17:00) [14][1],[2]
Я понимаю твою гордость, но не стоит демонстрировать ее хотя бы там, где она не к месту.
user'S © (08.01.07 14:41)
каким образом в строке символов выписать слово стоящее на втором месте.
В простейшем случае - найти первый пробел, все, что между ним и вторым пробелом - второе слово. Усложняя - надо игнорировать пробелы в начале строки, несколько пробелов подряд воспринимать как один, наконец, ряд символов тоже считать "пробелами".
user'S © (08.01.07 14:41)
Проблема возникла с присвоением переменной значения строки в N-символов
э-э-э... S:=copy(...,...,N) ?
kaZaNoVa (2007-01-08 14:47:00) [15]
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.
kaZaNoVa (2007-01-08 14:46:00) [16]pos