> 1 <

Автор Сообщение

mew2

Members


Статус

13 сообщений

Где: Ukraine
Род занятий:
Возраст:

#7701   2016-03-02 17:05 GMT+3 часа(ов)      
Всем привет.
Есть следующий код:
(define (mainloop)
(define addr (ask "addr"))
(let-values (((host rel) (split-host-rel addr)))
(displayln host)
(displayln rel)
(displayln (string-append "POST " rel " HTTP/1.1\r\n")))
(mainloop))
 
(define (ask question)
(printf "~a: " question)
(read-line))
 
(define (split-host-rel addr)
(let ((parts (regexp-match*
#rx"http://([^/]+?)(/.+)" addr
#:match-select cdr)))
(values (caar parts) (cadar parts))))
 
(mainloop)

На вход урл, на выходе три строки: хост, путь к файлу и строка хттп запроса, но не суть. Вопрос в следующем - в repl все работает нормально, но если создать екзешник и запустить его - то на выходе какая-то херня. И я в упор не понимаю в чем причина, ведь код один и тот же...
Кстати, заметил, что такое только на винде, на линуксе все нормально. Но мне как раз под винду и надо, так что вот...

misha

Moderators


Статус

1273 сообщений
http://racket-lang.org/
Где: Yemen
Род занятий:
Возраст:

#7702   2016-03-02 18:42 GMT+3 часа(ов)      
У вас походу оконная болезнь (редко работаете с консолью)
Вы используете read-line с дефолтными параметрами, поэтому в винде считывается символ возврата каретки, который вам все и портит.

mew2

Members


Статус

13 сообщений

Где: Ukraine
Род занятий:
Возраст:

#7703   2016-03-04 22:17 GMT+3 часа(ов)      
Цитата
misha :
У вас походу оконная болезнь (редко работаете с консолью)
Вы используете read-line с дефолтными параметрами, поэтому в винде считывается символ возврата каретки, который вам все и портит.



Да, спасибо, проблема была именно в символе возврата каретки, но я не сразу это понял потому, что редко сижу под виндовс, а писать пришлось именно под винду. В линухе же не ставится \r в конце.
> 1 <


Онлайн :

0 пользователь(ей), 29 гость(ей) :




Реклама на сайте: