🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.tcl
9 messages
9 total messages Started by qoocku Fri, 31 Mar 2006 06:47
newbe: zapobieganie translacji znaku "\" podczas czytania z pliku
#352
Author: qoocku
Date: Fri, 31 Mar 2006 06:47
8 lines
1332 bytes
Joł!

W pliku mam linie ze znakami "\". Uzywając "gets $channel line"
dostaję w $line wiersze bez tych znaków. Ja się takie linie czyta
bez utraty znaków "\", ewentualnie z automtyczną translacją z "\" na
"/" ?

Damian
Re: newbe: zapobieganie translacji znaku "" podczas czytania z pliku
#356
Author: Wojciech Kocjan
Date: Fri, 31 Mar 2006 07:12
15 lines
1414 bytes
On Fri, 31 Mar 2006 08:47:43 +0200, <qoocku@gmail.com> wrote:

> Joł!
>
> W pliku mam linie ze znakami "\". Uzywając "gets $channel line"
> dostaję w $line wiersze bez tych znaków. Ja się takie linie czyta
> bez utraty znaków "\", ewentualnie z automtyczną translacją z "\" na
> "/" ?

Mylisz się, gets czyta poprawnie, to ty źle z nich potem korzystasz -  
prawdopodobnie mylisz funkcje do obsługi list z funkcjami do obsługi  
ciągów znaków...

-- 
WK
Re: newbe: zapobieganie translacji znaku "" podczas czytania z pliku
#355
Author: Derek Kuliński / takeda
Date: Fri, 31 Mar 2006 09:56
25 lines
2610 bytes
On Fri, 31 Mar 2006 09:12:28 +0200, Wojciech Kocjan wrote:

>> W pliku mam linie ze znakami "\". Uzywając "gets $channel line"
>> dostaję w $line wiersze bez tych znaków. Ja się takie linie czyta
>> bez utraty znaków "\", ewentualnie z automtyczną translacją z "\" na
>> "/" ?
> Mylisz się, gets czyta poprawnie, to ty źle z nich potem korzystasz -  
> prawdopodobnie mylisz funkcje do obsługi list z funkcjami do obsługi  
> ciągów znaków...

To jest chyba najczęstszy błąd jaki widzę, ludzie używają lindex i lrange
na stringach bez wcześniejszej konwersji do listy używając split.

Damian, jak używasz lindex i podobne funkcje na stringu powinieneś to
zrobić np. tak:
set pierwsze_slowo [lindex [split $zdanie] 0]

IMO, fajnie byłoby jak by tcl miał tryb działanie (np. nazywałby się
strict) i w przypadku próby mieszania listy ze stringiem wywalałby błąd.
Albo robił podobnie jak np PHP, czyli zwracał np "Array" albo coś w tym
stylu :)
-- 
ダレック
takeda@IRCnet.EFnet, ICQ# 15827691, YahooIM: takeda64
http://ircwiki.takeda.tk - strona wiki poświęcona IRC
Re: newbe: zapobieganie translacji znaku "" podczas czytania z pliku
#357
Author: Wojciech Kocjan
Date: Fri, 31 Mar 2006 11:03
28 lines
2113 bytes
On Fri, 31 Mar 2006 11:56:51 +0200, Derek Kuliński / takeda  
<d.kulinski@gmail.com> wrote:
>>> W pliku mam linie ze znakami "\". Uzywając "gets $channel line"
>>> dostaję w $line wiersze bez tych znaków. Ja się takie linie czyta
>>> bez utraty znaków "\", ewentualnie z automtyczną translacją z "\" na
>>> "/" ?
>> Mylisz się, gets czyta poprawnie, to ty źle z nich potem korzystasz -
>> prawdopodobnie mylisz funkcje do obsługi list z funkcjami do obsługi
>> ciągów znaków...
>
> To jest chyba najczęstszy błąd jaki widzę, ludzie używają lindex i lrange
> na stringach bez wcześniejszej konwersji do listy używając split.

To fakt :-) Chociaż to też kwestia logiki ;)

> IMO, fajnie byłoby jak by tcl miał tryb działanie (np. nazywałby się
> strict) i w przypadku próby mieszania listy ze stringiem wywalałby błąd.
> Albo robił podobnie jak np PHP, czyli zwracał np "Array" albo coś w tym
> stylu :)

No fajnie, ale np często moje pliki konfiguracyjne działają na zasadzie

  array set config [read $fh]

Wtedy już jest gorzej ;)

-- 
WK
Re: newbe: zapobieganie translacji znaku "\" podczas czytania z pliku
#353
Author: Damian D.
Date: Fri, 31 Mar 2006 13:32
5 lines
1591 bytes
Dzieki za uwagi. W miedzyczasie spytalem sie na comp.lang.tcl i tam
dostalem odpowiedz o uzyciu "file normalize". Oczywiscie gets nic
nie wycina, tylko moje nastepne dzialania z próba przeksztalcenia
przeczytanego wiersza na liste dwuelementowa usunely mi te znaki. O
'split' jeszcze wtedy nic nie wiedzialem :)
Re: newbe: zapobieganie translacji znaku "\" podczas czytania z pliku
#354
Author: Derek Kuliński / takeda
Date: Fri, 31 Mar 2006 19:49
22 lines
2042 bytes
On 31 Mar 2006 05:32:27 -0800, Damian D. wrote:

> Dzieki za uwagi. W miedzyczasie spytalem sie na comp.lang.tcl i tam
> dostalem odpowiedz o uzyciu "file normalize".

Wydaje mi się, że nie zrozumieli Twojego problemu.

> Oczywiscie gets nic
> nie wycina, tylko moje nastepne dzialania z próba przeksztalcenia
> przeczytanego wiersza na liste dwuelementowa usunely mi te znaki. O
> 'split' jeszcze wtedy nic nie wiedzialem :)

split, join, list to b. pożyteczne funkcje :)
Tutaj więcej o nich:
http://www.tcl.tk/man/tcl8.4/TclCmd/split.htm
http://www.tcl.tk/man/tcl8.4/TclCmd/join.htm
http://www.tcl.tk/man/tcl8.4/TclCmd/list.htm

-- 
ダレック
takeda@IRCnet.EFnet, ICQ# 15827691, YahooIM: takeda64
http://ircwiki.takeda.tk - strona wiki poświęcona IRC
Re: newbe: zapobieganie translacji znaku "" podczas czytania z pliku
#358
Author: Derek Kuliński / takeda
Date: Fri, 31 Mar 2006 19:49
14 lines
1792 bytes
On Fri, 31 Mar 2006 13:03:25 +0200, Wojciech Kocjan wrote:

> No fajnie, ale np często moje pliki konfiguracyjne działają na zasadzie
>   array set config [read $fh]
> Wtedy już jest gorzej ;)

Zawsze możnaby dodać polecenia typu serialize, deserialize, etc. które
zapisywały by tablicę czy listę jako string i używało by się je właśnie w
takich sytuacjach.

-- 
ダレック
takeda@IRCnet.EFnet, ICQ# 15827691, YahooIM: takeda64
http://ircwiki.takeda.tk - strona wiki poświęcona IRC
Re: newbe: zapobieganie translacji znaku "" podczas czytania z pliku
#359
Author: Wojciech Kocjan
Date: Fri, 31 Mar 2006 19:55
15 lines
1721 bytes
On Fri, 31 Mar 2006 21:49:54 +0200, Derek Kuliński / takeda  
<d.kulinski@gmail.com> wrote:
>> No fajnie, ale np często moje pliki konfiguracyjne działają na zasadzie
>>   array set config [read $fh]
>> Wtedy już jest gorzej ;)
> Zawsze możnaby dodać polecenia typu serialize, deserialize, etc. które
> zapisywały by tablicę czy listę jako string i używało by się je właśnie w
> takich sytuacjach.

To już nie byłby Tcl... Beztypowość to właśnie największy plus Tcla,  
zresztą to nawet ma swój sens - "less time for coding, more time for  
writing tests" :-)

-- 
WK
Re: newbe: zapobieganie translacji znaku "" podczas czytania z pliku
#360
Author: Derek Kuliński / takeda
Date: Fri, 31 Mar 2006 23:31
15 lines
2032 bytes
On Fri, 31 Mar 2006 21:55:53 +0200, Wojciech Kocjan wrote:

>> Zawsze możnaby dodać polecenia typu serialize, deserialize, etc. które
>> zapisywały by tablicę czy listę jako string i używało by się je właśnie w
>> takich sytuacjach.
> To już nie byłby Tcl... Beztypowość to właśnie największy plus Tcla,  
> zresztą to nawet ma swój sens - "less time for coding, more time for  
> writing tests" :-)

Wygląda na to, że Tcl jest w takim razie nie dla mnie :)))

-- 
ダレック
takeda@IRCnet.EFnet, ICQ# 15827691, YahooIM: takeda64
http://ircwiki.takeda.tk - strona wiki poświęcona IRC
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads