URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 6900
[ Назад ]

Исходное сообщение
"Проблема CGI-скрипта на TCL"

Отправлено бродяга , 06-Июл-10 13:21 
Здравствуйте.
Проблема следующая.
Пишу на локальной машине с использованием Дервера скриптик. Скрипт формирует веб-страницу с полями ввода, и т.д. Все введенные данные с формы записываются в локальный файл. С Денвером все отлично пашет, но вот переношу на сервер, и тут начинаются проблемы:
При чтении из файла строк, и занесении их в таблицу веб-страницы, читается почему-то только первая часть (используется разбиение до пробела в строке)
вот код:

set in [open "dbase.txt" r]
while {[gets $in line] != -1} {
    puts "<tr>"
    puts "<td align=center>[string range $line 0 [string first " " $line 0]]</td>"
    puts "<td align=center>[string range $line [string first " " $line 0]+1 [string first " " $line [string first " " $line 0]+1]]</td>"
    puts "<td align=center>[string range $line [string first " " $line [string first " " $line 0]+1]+1 [string first " " $line [string first " " $line [string first " " $line 0]+1]+1]]</td>"
    puts "<td align=center>[string range $line [string first " " $line [string first " " $line [string first " " $line 0]+1]+1]+1 end]</td>"
    puts "</tr>"
}
close $in

На локальной машине все красиво берется из файлика, и записывается в табличку с 4 столбцами, а при запуске скрипта с сервера, первая строчка цикла выполняется только один раз. Причем если закомментировать строки

puts "<td align=center>[string range $line [string first " " $line 0]+1 [string first " " $line [string first " " $line 0]+1]]</td>"
    puts "<td align=center>[string range $line [string first " " $line [string first " " $line 0]+1]+1 [string first " " $line [string first " " $line [string first " " $line 0]+1]+1]]</td>"
    puts "<td align=center>[string range $line [string first " " $line [string first " " $line [string first " " $line 0]+1]+1]+1 end]</td>"

то первый столбец таблицы выводится вполне адекватно.

В чем может быть проблема?


Содержание

Сообщения в этом обсуждении
"Проблема CGI-скрипта на TCL"
Отправлено бродяга , 07-Июл-10 10:44 
>[оверквотинг удален]
>с 4 столбцами, а при запуске скрипта с сервера, первая строчка
>цикла выполняется только один раз. Причем если закомментировать строки
>
>puts "<td align=center>[string range $line [string first " " $line 0]+1 [string first " " $line [string first " " $line 0]+1]]</td>"
>    puts "<td align=center>[string range $line [string first " " $line [string first " " $line 0]+1]+1 [string first " " $line [string first " " $line [string first " " $line 0]+1]+1]]</td>"
>    puts "<td align=center>[string range $line [string first " " $line [string first " " $line [string first " " $line 0]+1]+1]+1 end]</td>"
>
>то первый столбец таблицы выводится вполне адекватно.
>
>В чем может быть проблема?

Разобрался....
на сервере почему-то возвращение индекса первого вхождения символа в строку осуществляется строковым значением...