Главная страница
    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.009 c
1-18295
Niobe
2003-09-24 10:27
2003.10.06
Уважаемые мастера, не подскажете как избавиться отVCL60.bpl & RTL


14-18621
tanisha
2003-09-16 14:54
2003.10.06
Тест


1-18352
Lionzi
2003-09-23 11:18
2003.10.06
Шрифт в memo


1-18468
zerro_nuz
2003-09-24 11:54
2003.10.06
Помогите как вычесть из даты дату ?


1-18294
Vt
2003-09-24 07:16
2003.10.06
Мастера почему не работает процедура Close. На onShow





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский