Что нового

Вставить в текстовый файл числа по порядку

zexalenin

Новичок
Сообщения
9
Репутация
0
Приветствую всех! Возникла необходимость сделать следующее: Нужно в файл, например test.txt, вставить в столбик числа по порядку, вот так

0000
0001
0002
0003
......
и так далее
желательно с нулями спереди и возможностью менять число нулей
с возможностью указать диапазон например от 0 до 1000.. Можно ли это осуществить в автоите
 

Alecsis

Осваивающий
Сообщения
109
Репутация
42
Как-то так, совсем простенько… скрипт + примеры входного файла + что получилось
Код:
Opt('MustDeclareVars', True)
#include <FileConstants.au3>
;
Local _
  $sFile_In   = 'Strn_In.txt',      _ ; исходный файл
  $sFile_Out  = 'Strn_Out.txt',     _ ; файл-результат
  $iStart     = 0,                  _ ; начальная поз. нумерации строк
  $iStop      = 1000,               _ ; закончить на этом номере
  $iNumLen    = 4,                  _ ; кол-ко цифр в нумерации, включая ведущие нули
  $sDelim     = ' - ',              _ ; разделитель нумерации и строки
  $aLines,                          _ ; массив строк исходного файла
  $sNPrefix,                        _ ; счиловой префикс строки  с разделителем
  $hFile_In,                        _ ; хендл исх. файла
  $hFile_Out,                       _ ; хендл файла-результата
  $i
  ;
  $hFile_In = FileOpen($sFile_In, $FO_READ)
  $aLines   = FileReadToArray($hFile_In)
  FileClose($hFile_In)
  ;
  $hFile_Out = FileOpen($sFile_Out, $FO_OVERWRITE)
  ;
  For $i = 0 To UBound($aLines)-1
    $sNPrefix   = '0000000000000000' & String($iStart + $i)   ; префикс с ведущими нулями «про запас»
    $sNPrefix   = StringRight($sNPrefix, $iNumLen)            ; отрезать столько цифр сколько надо
    $sNPrefix  &= $sDelim                                     ; разделитель для лучшей читаемости
    $aLines[$i] = $sNPrefix & $aLines[$i]                     ; пришить префикс к исх. строке
    FileWriteLine($hFile_Out, $aLines[$i])                    ; и записать её в файл-результат
    If $i >= $iStop Then ExitLoop
  Next
  ;
  FileClose($hFile_Out)
  ;
Exit
 

Вложения

  • Strn_In.txt
    580 байт · Просмотры: 1
  • Strn_Out.txt
    724 байт · Просмотры: 1

IMStrelcov

CTPEJIbLLOB
Сообщения
259
Репутация
66
Код:
$sFileOut =      'имя выходного файла.txt'
$iStartNum =     0
$iEndNum =       100
$iAlignNum =     -1

Generate_($sFileOut, $iStartNum, $iEndNum, $iAlignNum)

;$_sFile = имя выходного файла
;$_iStart = начальное число
;$_iEnd = конечное число
;$_iAlign = выровнять длину чисел нулями
;           -1 - да (длина автоматически)
;            0 - нет
;           >0 - кол-во знаков
Func Generate_($_sFile, $_iStart, $_iEnd, $_iAlign = -1)
     Local $hFile = FileOpen($_sFile, 2)
     If @ERROR Then Return SetError(1, 0, '')
     If $_iAlign < 0 Then $_iAlign = StringLen($_iEnd)
     For $_iStart = $_iStart To $_iEnd
          FileWriteLine($hFile, StringFormat('%0'& $_iAlign& 's', $_iStart))
     Next
     FileClose($hFile)
     Return 1
EndFunc
 
Верх