1

Тема: OFF: Прошу подключиться к решению загадки… — II

В блоге Олега Кляйна (Helge Klein) попалось интересное задание Quickest Way to Create Text File of Specific Length:

How to Create Such a Beast

That was the question I asked myself. I was not thrilled by the prospect of copying and pasting blocks of text in an editor until the required length had been reached.

Perl
Luckily I remembered that Perl has a function that makes such a task trivial: the ‘x’ operator. Here is what I came up with:

perl -e "print '1' x 32739" > 32739.txt

If you have Perl installed, that line can be executed from the regular Windows command line. “Perl -e” executes one command string (enclosed in double quotes). The result is then written to the file 32739.txt with the command line’s output redirection operator “>”.

Alternatives?

Are there any other elegant ways to create a text file with one line of exactly 32,739 characters? If you know of one, please let me know by commenting below.

Условно говоря, каким образом можно быстро и просто создать текстовый файл заданной длины?

Мои первые варианты там в комментариях были уже озвучены, посему я изложил своим плохим английским вариант на языке командного процессора:

AlexII пишет:

Simple, but long-time command for NT-based command processor:

>nul copy nul 32739.txt & for /l %i in (1, 1, 32739) do @(<nul set /p SomeVar=1)>>32739.txt

The brackets need only for prevent redirection in this case (as … 1>>file.txt).

This way is more easy and quickly:

(for /l %i in (1, 1, 32739) do @<nul set /p SomeVar=1)>32739.txt

Но, зараза, движок блога скушал мой код . Так что, помещаю его здесь.

P.S. Перед тем как перейти по ссылке выше и посмотреть изложенные варианты, попробуйте сами .

2

Re: OFF: Прошу подключиться к решению загадки… — II

Через JS, но как-то многовато кода

CMD @ECHO OFF & MSHTA "javascript:s=new ActiveXObject('Scripting.FileSystemObject').
GetStandardStream(1); for(i=0;i<32739;i++)s.Write(1);close();" 1 | MORE >> 32739.txt

3

Re: OFF: Прошу подключиться к решению загадки… — II

JSman пишет:

Через JS, но как-то многовато кода

cmd /c mshta "javascript:new ActiveXObject('Scripting.FileSystemObject').
GetStandardStream(1).Write(new Array(32769+1).join(1));close()" 1 > 32769.txt

Создание строки заданной длины через создание массива. Так наверно будет покомпактнее и чуть побыстрее.

( 2 * b ) || ! ( 2 * b )

4

Re: OFF: Прошу подключиться к решению загадки… — II

Одна строчка

CreateObject("Scripting.FileSystemObject").OpenTextFile("Out.txt", 2, True).Write String(32444," ")
Времени не хватает... :-(

5