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

Вниз

Пытаюсь сделать счетчик CGI на Делфи   Найти похожие ветки 

 
MDFE ©   (2003-08-09 15:18) [0]

Пытаюсь сделать счетчик на Делфи/CGI.

Задача:
var s:string;

1) Нужно в CGI открыть файл(где цифра посещений) на чтение, считать s, закрыть.
2) s:=IntToStr(StrToInt(s)+1);
3) Открыть файл на запись, записать s, закрыть файл


-------------------------------------------------------------
Делаю 1 пункт, 1 вариант:

procedure TWebModule1.WebModule1WebActionItemAction(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
var
f:textfile;
s:string;
begin
s:="0";

AssignFile(f," http://host/logs/Count.dat");
Reset(f); // Ошибка
Readln(f,s);
Close(f);
end;

Ошибка IO 123

try и -I непомогают


-------------------------------------------------------------
Делаю 1 пункт, 2 вариант(из help`a):

procedure TWebModule1.WebModule1WebActionItemAction(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
var
s:string;
iFileHandle: Integer;
iFileLength: Integer;
iBytesRead: Integer;
Buffer: PChar;
i: Integer;
begin
s:="0";

iFileHandle := FileOpen(" http://host/logs/Count.dat", fmOpenRead);
iFileLength := FileSeek(iFileHandle,0,2);
FileSeek(iFileHandle,0,0);
Buffer := PChar(AllocMem(iFileLength + 1));
iBytesRead := FileRead(iFileHandle, Buffer, iFileLength);
FileClose(iFileHandle);

s:=PChar(Buffer);
FreeMem(Buffer);
end;

Ошибок нет, но iBytesRead = -1

Вопрос как считать эту "s"?
Или может кто делал такое, подскажите куда копать.

Проверка CGI идет на ISS

http://host/logs/Count.dat - существует
права - все галочки(Доступ к тексту сценария, чтение, запись, запись в журнал)

Если будут вопросы, задавайте.


 
Anatoly Podgoretsky ©   (2003-08-09 16:11) [1]

http://host/logs/Count.dat
Такой файл не может существовать, недопустимые символы в имени файла


 
Набережных С. ©   (2003-08-09 17:02) [2]

Плюс к >>Anatoly Podgoretsky © (09.08.03 16:11)<< еще кое-какие мелочи:
1) Откуда известно, что ошибок нет, если нет проверок?
2) Да сколько же можно!
iBytesRead := FileRead(iFileHandle, Buffer^, iFileLength);
3) Ради любопытства - на кой ляд вот это:
s:= PChar(Buffer);


 
Anatoly Podgoretsky ©   (2003-08-09 17:10) [3]

Ну мелочи я воосе не стал рассматривать, нет смысла если главное не в порядке.


 
MDFE ©   (2003-08-09 18:04) [4]

Anatoly Podgoretsky © (09.08.03 16:11)
понял...т.е. путь берем локально для сервера
AssignFile(f,"./../wwwroot/logs/DownloadCount.dat");
Reset(f);
работает, остальное мелочи.

На этом спасибо.

Набережных С. © (09.08.03 17:02)
1) проверки в этом посте убрал, конечно же ошибки были(имелось введу CGI не загибался, прошу прощения за неточность)
2) взято из help`a D6 "FileOpen, FileSeek, FileRead Example", тупо поверил в написаное.
FileRead пользаваться не приходилось, хватало Read(f
3) описка, имелось в виду s:=String(Buffer);

Благодарю и Вас.


 
Набережных С. ©   (2003-08-09 18:32) [5]

Будь выполнен п.1, и вопроса бы, возможно, не возникло. ИМХО, конечно.


 
Anatoly Podgoretsky ©   (2003-08-09 18:46) [6]

MDFE © (09.08.03 18:04)
Это уже другое дело, это нормальный путь
А то http:


 
MDFE ©   (2003-08-10 02:22) [7]

Набережных С. © (09.08.03 18:32)
Вы полностью правы, еще пришлось побороться(через ошибки) с правами доступа(нехотел открываться на запись).
но все ок. :)



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

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

Наверх




Память: 0.48 MB
Время: 0.02 c
14-18563
Rif
2003-09-17 15:01
2003.10.06
Как отправить письмо


3-18254
rava
2003-09-16 08:49
2003.10.06
Про Plan


14-18559
Jiura32d
2003-09-18 20:31
2003.10.06
Дайте please компонент для предосмотра перед печатью!!!!


14-18578
Максим
2003-09-18 14:28
2003.10.06
такая тема


14-18595
panov
2003-09-17 18:59
2003.10.06
Ну что, бета-тестер... слабо теперь?