Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2003.10.06;
Скачать: [xml.tar.bz2];

Вниз

Пытаюсь сделать счетчик 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.007 c
7-18650
DAT
2003-07-22 16:11
2003.10.06
Параметры печати, установки принтера, свойства документа?


1-18414
Nikulin
2003-09-25 15:15
2003.10.06
Что за дирректива local в обьявлении процедуры?


14-18591
Prot
2003-09-18 13:00
2003.10.06
Не в тему, но я офигел...


3-18245
Julie
2003-09-16 10:32
2003.10.06
SQL


1-18441
3APA3A
2003-09-24 23:53
2003.10.06
Проблема с ValueListEditor ом





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский