2013-08-14 4 views
-2

Мне нужен код для удаления только последнего символа новой строки из файла в TCL. предположит, что файлкак удалить последний символ новой строки из файла в TCL

aaa 11 
bbb 12 
cc 14 
newline character 

теперь, как удалить этот символ новой строки из файла в TCL , пожалуйста, помогите мне в этом!

+3

Что вы пробовали? Есть ли определенная часть проблемы, которую вы не понимаете, или вы просите нас написать код для вас? –

ответ

0

Seeking и truncating - твой друг. (Требуется Tcl 8,5 или более поздней версии.)

set f [open "theFile.txt" r+] 

# Skip to where last newline should be; use -2 on Windows (because of CRLF) 
chan seek $f -1 end 
# Save the offset for later 
set offset [chan tell $f] 
# Only truncate if we're really sure we've got a final newline 
if {[chan read $f] eq "\n"} { 
    # Do the truncation! 
    chan truncate $f $offset 
} 

close $f 

Для удаления данных из где-нибудь кроме конца файла, то проще всего переписать файл (либо путем загрузки данных всех в памяти или потокового и преобразования к новому файлу, который вы перемещаете назад, причем последнее сложнее, но необходимо с большими файлами). Усечение может работать только в конце.

+0

Мне это нужно в версии 8.4 tcl ... может ли помочь мне в этом плз – nandini

Смежные вопросы