PDA

Показать полную графическую версию : [решено] Дописание информации в файл


Hardip
26-11-2010, 21:32
Доброе время суток! Есть програмка которая выбирает строки из текстового файла (в нём 2 столбца с числами), и делит их друг на друга. Соответственно выводя результат на экран))
@echo off
setlocal enabledelayedexpansion
for /f "TOKENS=1,2*" %%i IN (nt.txt) do (
set /a Size=%%i/%%j echo !Size!>>nt.txt
)
pause>nul
Вот тут !Size!>>nt.txt я направляю поделенные цифры для добавления в файл. Но он их записывает сначала просто подставляя к последней строке(было 1 5 - стало например 1 52), а далее в столбик. Хотелось бы чтобы рядом, с этими двумя создавался третий (с пробелом между) с результатом. Заранее благодарю за помощь!

Anonymоus
26-11-2010, 22:47
Hardip, возможно, так?
@Echo Off
SetLocal EnableDelayedExpansion
For /F "tokens=1,2*" %%i In (nt.txt
) do (
Set /A Size=%%i/%%j
Echo %%i %%j !Size!>>nt.tmp
)
Del nt.txt & Ren nt.tmp nt.txt
Pause>nul

Hardip
26-11-2010, 22:53
Anonymоus »
Да! Именно так! Спасибо огромное! А почему он создает соседний столбец через пробел, объясните пожалуйста! Echo %%i %%j !Size! И обязательно ли создавать временный, можно сразу писать в новый файл (вроде copy con - создание пустого или както-проще)?

Anonymоus
26-11-2010, 22:57
А почему он создает соседний столбец через пробел »
Потому, что мы построчно записываем в файл переменные i и j, а так же вычисленный результат, разделённые пробелами, т.е. строим новую таблицу взамен дописывания к старой.
И обязательно ли создавать временный, можно сразу писать в новый файл »
Можно писать и в существующий, но тогда данные опять начнутся с того места, где заканчивается предыдущая строка. Грубо говоря, приходится использовать этот вариант, потому что cmd.exe не умеет дописывать в конец нужной строки, только в конец файла.




© OSzone.net 2001-2012