čitanje podataka iz *.txt

More
14 years 4 months ago #70 by zrendula
mbozicevic 24-02-2009 15:15
Pozdrav!

- molim znalce da mi pomognu.....nisam neki u lispu a treba mi riješenje..... hvala unaprijed!

Zadatak je slijdeći:
- treba iz *.txt filea pročitat attribute kojim će se popuniti blokovi s attributima, vidio sam primjere kad je fiksan broj znakova za pojedin attribut, to funkcionira, ali....kod mene je slučaj da ne znam koliko će mi biti znakova koji (attribut) varijabla, ali bit će odvojeni spaceom.......tj. u prvom redku mogu imati
2slova_3slova_1slovo
u drugom već može biti
10slova_20slova_2slova

......hmmm, imam neku ideju, al' ne funkcionira za sada (pogledaj lisp).

- ideja je da s read pročitam prvi dio linije (do prvog spacea).....potom taj pročitani podatak spremim u neku varijablu.....sa strlen prebrojim broj znakova od prve varijable.......onda sa substr (broj znakova prve varijable) pročitam ostatak u liniji te ga pohranim umjesto postojeće linije....postupak se ponavlja do kraja linije, pa na slijedeću......hmmm

- normalno da mi se javlja problem, :-/ .... read pročita prvi dio linije ali varijabla u koju ga zapiše više nije STR nego prelazi u SYM kojem ne mogu prebrojati znakove..................i sve pada u vodu.....

- nemam pojma, kako ga nagovorit da pretvori SYM u STR ili tako što...... nadam se da je banalni problem....

poz...

File Attachment:

File Name: proba2.rar
File Size:1 KB
Attachments:

Please Prijava or Create an account to join the conversation.

More
14 years 4 months ago #71 by zrendula
JackOfHearts 24-02-2009 20:16
Za razdvajanje stringa u listu, probaj sa ovom funkcijom koja je u priloženom lispu. Moram naglasiti da ovo nije moja funkcija i ne znam od kuda, ali odlično radi.

primjer:
ST_str2lst "1,2,33,4" ","

rezultat:
"1" "2" "33" "4"

ako ne uspiješ, javi pa budemo nekaj drugo probali
Code:
(defun ST_str2lst (strng delim / stlist st pos) (setq strng (strcat strng delim) pos T stlist '() ) (while pos (setq pos (ST_fsrch strng delim)) (if pos (setq st(substr strng 1 (1- pos)) stlist (append stlist (list st)) strng (substr strng (1+ pos)) )) ) stlist ) (defun ST_fsrch(str delim / len pos more cnt ch) (setq len (strlen str) pos nil more T ) (if (> len 0) (progn (setq cnt 1) (while (and more (<= cnt len)) (setq ch (substr str 1 1) str (substr str 2) ) (if (= ch delim) (setq pos cnt more nil )) (setq cnt (1+ cnt)) ) )) pos )

mbozicevic 24-02-2009 20:33
hvala hvala! probat cu ovih dana pa javim...

Please Prijava or Create an account to join the conversation.

Time to create page: 0.101 seconds