에 도움을 주시기 바랍니다 그것을 사용하는 방법을 잘하지를 사용하여 가능하다 전체 라인을 가져올 수 파일. 이를 위해 proper CSV parser을 사용하고 싶습니다.
lassign [lmap value [csv::split $line] {string trim $value}] name age
그러나 그것은 순수하게 정제입니다 :
package require csv
set f [open "data.text"]
# Skip the header line; we could parse it, but we won't
gets $f
# Parse the remaining lines
while {[gets $f line] >= 0} {
lassign [csv::split $line] name age
# Your data has extra spaces in it, it seems; we deal with that here
set name [string trim $name]
set age [string trim $age]
# Now we'll do something with that
puts "name is '$name', age is '$age'"
}
close $f
은 Tcl 8.6
, 당신은 더 직접적으로 트리밍 통합 할 수 있습니다. (
lmap
이없는 전에 8.5, 당신은
foreach
로 쓸 수 등등,하지만 진짜 포인트가 없습니다,. 두 필드가있을 때 당신이 그것을하지 않고 직접 충분히 코드를 작성할 수 있습니다)에 대한
감사를 당신의 도움. 하지만 안타깝게도 제 소프트웨어에는 번들로 제공되는 CSV 패키지가 없습니다. 그 때문에 위의 코드를 사용할 수 없습니다. 이 문제를 해결할 다른 방법이 있습니까? 아래 코드를 사용했지만 이름과 나이를 개별적으로 지정할 수 없습니다. 내 코드가 전체 라인을 읽고 이름 및 시간대에 배치합니다. 텍스트 상자 세트 이름 [open data.txt r] set file_data [read $ Name] foreach line $ file_data { set -widget m_Name - 값 $ line #Entering Name in 텍스트 상자 -widget m_Age - 값 $ line } – Raj
안녕하세요, 선생님, 제 질문에 대한 답변을 찾았습니다. 아래를 참조하십시오. 그러나 여전히 전체 신용은 당신에게갑니다. 당신의 도움을 주셔서 감사합니다.lassign $ line 이름 이름 은 "a = $ Name b = $ Name"을 넣습니다. } 닫기 $ (이 파일을 열거 나 저장하지 마십시오.) foreach line [split [string $ [읽기 $ chan] file_open – Raj