ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

18.04.2010, 11:38
|
|
Участник форума
Регистрация: 13.11.2008
Сообщений: 131
Провел на форуме: 776255
Репутация:
52
|
|
имеются несколько файлов f1, f2, f3.
Procedure OpenFile1;
begin
assignfile(f1,'f1.dat');
if FileExists('f1.dat')
then reset(f1)
else rewrite(f1);
end;
Как сделать так, чтобы не писать три процедуры для открытия файлов? Что это за тип f1 ? Какого типа должна быть переменная a , чтобы a:=f1 ?
|
|
|

18.04.2010, 11:46
|
|
Познающий
Регистрация: 28.09.2008
Сообщений: 65
Провел на форуме: 152084
Репутация:
8
|
|
Сообщение от Si{R}ius
имеются несколько файлов f1, f2, f3.
Procedure OpenFile1;
begin
assignfile(f1,'f1.dat');
if FileExists('f1.dat')
then reset(f1)
else rewrite(f1);
end;
Как сделать так, чтобы не писать три процедуры для открытия файлов? Что это за тип f1 ? Какого типа должна быть переменная a , чтобы a:=f1 ?
можно в одной процедуре всё описать, только место f1 подставлять f2 и f3 соответсвенно.
f1 - .dat (стандартный тип файлов для паскаля)
как ты переменной собрался присваивать файл?
ты вообще с файлами работал?-_-
assign (f1,'f1.dat') - те ты ассоцируешь ключевому слову f1 - файл f1.dat
|
|
|

18.04.2010, 12:33
|
|
Участник форума
Регистрация: 13.11.2008
Сообщений: 131
Провел на форуме: 776255
Репутация:
52
|
|
Я хочу вместо
Код:
Procedure OpenFile(nomer: byte);
begin
case Nomer of
1: begin assignfile(f1,'f1.dat');
if FileExists('f1.dat') then reset(f1)
else rewrite(f1); end;
2: begin assignfile(f2,'f2.dat');
if FileExists('f2.dat') then reset(f2)
else rewrite(f2); end;
3: begin assignfile(f3,'f3.dat');
if FileExists('f3.dat') then reset(f3)
else rewrite(f3); end;
end;
end;
получить нечто похожее на
Код:
Procedure OpenFile(a: ff);
begin
case a of
f1: str:='f1.dat';
f2: str:='f2.dat';
f3: str:='f3.dat';
end;
assignfile(a,str);
if FileExists(str) then reset(a)
else rewrite(a);
end;
я не знаю, как это правильно реализовать, так как раньше не сталкивался с этим.
|
|
|

18.04.2010, 13:43
|
|
Новичок
Регистрация: 07.04.2007
Сообщений: 27
Провел на форуме: 338084
Репутация:
-8
|
|
подскажите как очистить одномерный массив от пустых значений(array of string)
|
|
|

18.04.2010, 13:53
|
|
Участник форума
Регистрация: 18.07.2009
Сообщений: 278
Провел на форуме: 3055344
Репутация:
259
|
|
На сколько я помню, в VB это я делал так: находим пустой элемент, его удаляем, и смещаем все идущие за ним элементы на 1 пункт и т.д. думаю и на дельфи так же будет! пробуй
PHP код:
for i:=1 to n do begin
if a[i]:='' then do
begin
for t:=i+1 to n do
begin
a[t-1]:=a[t];
end;
n:=n-1;
end;
end;
Последний раз редактировалось EndLeSSDre@M; 18.04.2010 в 14:10..
|
|
|

18.04.2010, 14:27
|
|
Участник форума
Регистрация: 18.07.2009
Сообщений: 278
Провел на форуме: 3055344
Репутация:
259
|
|
Подскажите, где трабла? проблема в том что если прокся не рабочая, то выдает ошибку сокета 10060 типа превышено время ожидания.... пробовал по всякому как видите, от этой ошибки не избавился.... надо чтобы если прокся не рабочая, он удалял ее из списка и переходил дальше проверять!
PHP код:
var i,port: integer;
ProxyList,params,Presponseres:tstrings;
proxy,por,ip:string ;
begin
ProxyList:=tstringlist.Create;
ProxyList.LoadFromFile('Proxy.txt');
params:=TStringList.Create;
Presponseres:=TStringList.Create;
if ProxyList.Text=''
then begin
ShowMessage ('Список пуст');
exit;
end;
for i:= 0 to ProxyList.Count-1 do
begin
Proxy:=ProxyList.Strings[i];
ip:=getip(Proxy);
por:=getport(Proxy);
port:=StrToInt(por);
showmessage(proxy);
try
IdHTTP1.ProxyParams.ProxyServer:=ip;
IdHTTP1.ProxyParams.ProxyPort:=port;
IdHttp1.ReadTimeout:=10000;
IdHTTP1.Get('http://getmyip.ru/');
except
ProxyList.Delete(i);
ProxyList.SavetoFile('Proxy.txt');
ProxyList.free;
end;
end;
end;
ну че блин... никто помочь не может чтоль(((( всем помогаю, а мне никто(((
Последний раз редактировалось EndLeSSDre@M; 18.04.2010 в 14:29..
|
|
|

18.04.2010, 15:39
|
|
Участник форума
Регистрация: 30.03.2007
Сообщений: 121
Провел на форуме: 188563
Репутация:
52
|
|
Сообщение от Si{R}ius
Я хочу вместо
Код:
Procedure OpenFile(nomer: byte);
begin
case Nomer of
1: begin assignfile(f1,'f1.dat');
if FileExists('f1.dat') then reset(f1)
else rewrite(f1); end;
2: begin assignfile(f2,'f2.dat');
if FileExists('f2.dat') then reset(f2)
else rewrite(f2); end;
3: begin assignfile(f3,'f3.dat');
if FileExists('f3.dat') then reset(f3)
else rewrite(f3); end;
end;
end;
получить нечто похожее на
Код:
Procedure OpenFile(a: ff);
begin
case a of
f1: str:='f1.dat';
f2: str:='f2.dat';
f3: str:='f3.dat';
end;
assignfile(a,str);
if FileExists(str) then reset(a)
else rewrite(a);
end;
я не знаю, как это правильно реализовать, так как раньше не сталкивался с этим.
Попробуй вместо f1,f2,f3 использовать массив 
тоесть примерно так:
PHP код:
var
f:array[1..3] of textfile;
Procedure OpenFile(a: dword);
begin
case a of
1: str:='f1.dat';
2: str:='f2.dat';
3: str:='f3.dat';
end;
assignfile(f[a],str);
if FileExists(str) then
reset(f[a])
else
rewrite(f[a]);
end;
можно так:
PHP код:
var
f:array[1..255] of textfile;
Procedure OpenFile(i: dword);
begin
str:='f'+inttostr(i)+'.dat';
assignfile(f[i],str);
if FileExists(str) then
reset(f[i])
else
rewrite(f[i]);
end;
p.s. inttostr - перевод числа в строку (Delphi)
|
|
|

18.04.2010, 16:02
|
|
Участник форума
Регистрация: 30.03.2007
Сообщений: 121
Провел на форуме: 188563
Репутация:
52
|
|
Сообщение от EndLeSSDre@M
Подскажите, где трабла? проблема в том что если прокся не рабочая, то выдает ошибку сокета 10060 типа превышено время ожидания.... пробовал по всякому как видите, от этой ошибки не избавился.... надо чтобы если прокся не рабочая, он удалял ее из списка и переходил дальше проверять!
....
ну че блин... никто помочь не может чтоль(((( всем помогаю, а мне никто(((
Вот, ошибка не вылетает, если программу запускать отдельно, тоесть не под средой разработки, проверял на этом коде.
PHP код:
procedure TForm1.Button1Click(Sender: TObject);
begin
IdHTTP1.ProxyParams.ProxyServer:='114.127.246.36';
IdHTTP1.ProxyParams.ProxyPort:=8080;
try
IdHTTP1.Get('http://ya.ru');
showmessage('Рабочий');
except
showmessage('Не рабочий');
// удаляем из списка
end;
end;
Меня смутили эти строки, при ошибке сохранить и освободить список? если тебе надо только удалить ненужный эл. списка, и продолжить цикл.
PHP код:
ProxyList.SavetoFile('Proxy.txt');
ProxyList.free;
Последний раз редактировалось JnK; 18.04.2010 в 16:12..
|
|
|

18.04.2010, 16:02
|
|
Постоянный
Регистрация: 12.02.2009
Сообщений: 527
Провел на форуме: 4566140
Репутация:
0
|
|
только начал изучение дельфи нужна функция поиска по определенному сайту. т.е. на сайте есть поиск к примеру http://photoshop.demiart.ru/ там справа функция поиска как эту функция перекинуть на дельфи? чтобы получилось типо:
[ это страка поиска ]
[кнопка поиск]
|
|
|

18.04.2010, 16:22
|
|
Участник форума
Регистрация: 30.03.2007
Сообщений: 121
Провел на форуме: 188563
Репутация:
52
|
|
Сообщение от FALTONICK
только начал изучение дельфи нужна функция поиска по определенному сайту. т.е. на сайте есть поиск к примеру http://photoshop.demiart.ru/ там справа функция поиска как эту функция перекинуть на дельфи? чтобы получилось типо:
[ это страка поиска ]
[кнопка поиск]
1. Смотришь исходный код страницы, находишь форму поиска.
2. Кидаешь на форму в программе Edit и Button
3. при нажатии Button выполнять запрос.
+ Сниффер в помощь
q=текст для поиска
+много скрытых полей
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|