ファイルを作成して書き込む


11

チャレンジ

新しいファイルを作成し、文字列Hello Worldを書き込みます。

制限事項

  • チャレンジは、ファイルシステム内のディスク上のファイルに書き込む必要があります。

  • このファイルは、インタープリターの通常の操作中に生成されたログファイルではない場合があります。

  • ファイルには文字列のみを含める必要がありますHello World。末尾の改行または最小限の空白を含めることができます。他のコンテンツはありません。

  • プログラムの実行に必要な場合を除き、コマンドラインフラグ/パイプ(など)は許可されません。(例perl -p

ノート

  • これはであるため、バイト単位の最短プログラムが優先されます。

  • ルールの精神ではなく、手紙に従ってください。


末尾の改行は大丈夫ですか?
ウィニー

@Winnyはい、大丈夫です
dkudriavtsev

ファイル名はファイルの内容の一部ですか?
いとこコカイン

回答:



24

Python 2、32バイト

print>>open(*"ww"),"Hello World"

はい、これは有効なpythonです。


1
わあ 説明?
ジェームズ

1
@DrGreenEg​​gsandIronManメイントリックはどのようにあるように見える*機能で個々の引数に反復可能を分割することができ、そうopen(*"ww")なりましたopen("w","w")
バリューインク

7
@ValueInk実際には、主なトリックは、拡張されたprintステートメントを使用することです。
xsot

1
それは確かにクールなトリックですが、それはあなたのためではなかった場合は*"ww"使用していますここでは他のPythonの回答で結ばトリックyou'd've、open(...).write(...)同じバイト数のための代わりに
バリューインク

おっと、それすら知らなかった。
-xsot




5

バッチ、18バイト

echo Hello World>f

私はあなたが必要と思うか@、これを(コンソール)と改名します。
エリックアウトゴルファー16年

@必要はありません。
ショーンワイルド

バッチファイルに保存して、そのまま実行します(コマンドを直接入力しないでください)。@そうしないと、コマンドも出力されるため、が必要であることがわかります。つまり、次の2つのオプションがあることを意味します。1)この回答は、だまされるので削除する2)(コンソール)としてラベルを変更する。
エリックアウトゴルファー

5

Vim、15 + 2 == 17バイト

iHello World<esc>ZZ

+2でこれを起動するためのバイトvim fの代わりにvim。さらに、このバージョンは以下に対して機能します。

iHello World<C-o>ZZ

このようなvimの起動が許可されていない場合、以下もあります。

Vim、18バイト

iHello World<esc>:w f<cr>

サイドノート:これはポリグロットです。同じことがVでも機能しますが、1バイト短くなります(<cr>末尾が暗黙的であるため)。


最後にある `f <cr>`は何のためですか?
ツヴァイ

@Zwei 'f'はファイルの名前であり<cr>、コマンドを実行するには(「enter」のニーモニックである1バイト)が必要です。コロンで始まるコマンドはvim内のミニシェルのようなものであり、コマンド:wはファイルに書き込むためのコマンドです。
ジェームズ

完全に入力する必要があるため、<esc>5バイトおよび<cr>4 バイトとしてカウントすべきではありませんか?
バートヴァンニーロップ

@BartvanNieropいいえ、<esc>「エスケープキー」の表記です。これは0x1B<cr>「復帰キー」の表記です。0x0B
ジェームズ

1
まず第一に、キーストローク== bytesvimスコアリングする先例がありますが、第二に、vim-key表記を使用せずにvim "code"でこれを書く方法がいくつかあります。たとえば<C-v>、リテラルエスケープ文字とリテラルキャリッジリターンの挿入に使用する場合、これらのストロークをすべてマクロに割り当てて、そのように実行できます。また、vimscriptでnormal 'iHello World^[:w f^Mそれを行うこともできます。これは、vim を入力する方法はなく、vimが表示する方法です。^[そして^M両方とも1バイトです。
ジェームズ


3

C、44バイト

main(){fputs("Hello World",fopen("o","w"));}

1
これはなくて、いくつかのシステム上でセグメンテーションフォールトます#include <stdio.h>
スティーヴン・ペニー

@StevenPenny segfaultしないことが保証されているシステム/コンパイラがある限り、それは問題ありません。回答は通常、移植可能である必要はありません。
マーティンエンダー


3

PowerShell、15バイト

"Hello World">o

>文字列をo現在のディレクトリで呼び出されるファイルにリダイレクトします。



2

ed、19文字

i
Hello World
.
w o

サンプル実行:

bash-4.3$ ed <<< $'i\nHello World\n.\nw o'
12

bash-4.3$ cat o
Hello World


2

K、20バイト

    `:f 0:,"Hello World"
    `:f

確認;

    mmm@chromozorz:~/q$ cat f.txt 
    Hello World

誰もまだ言っていないので、Programming Puzzles&Code Golfへようこそ。
エリックアウトゴルファー16年

大変感謝いたします!
-Chromozorz

OK。余分な先行スペースもあると思います。あなたがしたい場合(それらが意図的に配置されている場合、私は知らないが、私はそれが意図しないだったと思う。)から、私はスペースを編集します
エリックOutgolfer

2

Clojure、23バイト

#(spit"x""Hello World")

呼び出されるファイルを作成しxHello Worldそこに書き込む匿名関数。


2

Node.js、42バイト

require("fs").writeFile('o','Hello World')

これは説明が必要だとは思わない

Node.js REPL、31バイト

fs.writeFile('o','Hello World')

何らかの理由でreplに含める必要はありません fs


私はこれがうまくいくとは思わない。それが機能するためには、が必要require("fs").writeFile("o","Hello World")です。それ以外の場合、fsは含まれません。
コナーオブライエン

@CᴏɴᴏʀO'Bʀɪᴇɴハァッ 何らかの理由でREPLで動作する
-Downgoat

2

C#、 93 77 76バイト

using System.IO;namespace N{class C{static void M(){File.WriteAllText("f", "Hello World");}}}

class C{static void Main(){System.IO.File.WriteAllText("f", "Hello World");}}

class C{static void Main(){System.IO.File.WriteAllText("f","Hello World");}}

不正なファイルアクセスを除き、動作することを確認してください

変更履歴

Rev2

  • 不要な名前空間を削除しました
  • 関数名をMainに変更しました(そうしないと、main関数として検出されないため)
  • usingディレクティブの削除(JeanLourençoに感謝)

Rev3

  • 忍び込んだスペースを削除しました。

C#(定型文なし)、47バイト

void M(){File.WriteAllText("f","Hello World");}

使用を削除して、メソッドに直接追加することで、いくつかのバイトを保存できます。System.IO.File.WriteAllText [...]
JeanLourenço16年

@JeanLourençoありがとう。私は元々それを持っていて、それから未知の理由でそれを変えました。
バートヴァンニーロップ

2

R、38 36 35バイト

sink(" ");cat("Hello World");sink()

作成されたファイルに名前がないのが好きです!.txt実際のところ、それは何でもあります!

@PEARコメントのおかげで-2バイト!@BartvanNieropのおかげで
-1バイト!

このコードは、名前のないファイルを生成します。


1
「.txt」は本当に必要ですか?ファイルの末尾はユーザー専用です。単一の文字で十分かもしれません。
PEAR

1
Rはわかりませんが、@ PEARの提案によると、単にファイルに名前を付けるだけで、別のバイトを削ることはできません"a"か?
バートヴァンニーロップ



1

APLX、15 バイト

'Hello World'1

コンポーネントを1つだけ含むAPLコンポーネントファイルを作成します。目的の文字列。以下で読み返すことができます。

      'Hello World'1
Hello World

1

Gema、28文字

\A=@write{o;Hello World}@end

サンプル実行:

bash-4.3$ gema '\A=@write{o;Hello World}@end'

bash-4.3$ cat o
Hello World


1

ジュリア、47バイト

f=open("o","w");write(f,"Hello World");close(f)

を使用してみましたwritedlmが、うまくいきませんでした。




1

Javaの7、100の 95バイト

void f()throws Exception{java.io.Writer p=new java.io.PrintWriter("x");p.print("Hello World");}

または、使用後にライターを閉じる場合(101バイト):

void f()throws Exception{try(java.io.Writer p=new java.io.PrintWriter("x")){p.print("Hello World");}}

ゴルフをしていない:

class Main{
  static void f() throws Exception{
    try(java.io.Writer p = new java.io.PrintWriter("x")){
      p.print("Hello World");
    }
  }

  public static void main(String[] a){
    try{
      f();
    } catch(Exception ex){
    }
  }
}

使用法:

java -jar Main.jar

Javaは私のお気に入りの言語ですが、イエス・キリストはゴルフの言語がどれほど悪いか笑っています
Shaun Wild

4
@AlanTuning確かに。xD私は職場でJavaを使用していますが、Javaでコードゴルフをするのは楽しいです。ここでJavaを使用してコードゴルフのチャレンジに勝つことは決してできませんが、Javaコードをできるだけ短く書くのはまだ楽しいです。
ケビンCruijssen 16

2
まあ、あなたはちょうどできるvoid f()throws Exception{new java.io.PrintWriter("x").print("Hello World");}
クリフルート

java.io.Writer p=new java.io.PrintWriterキャラクターをさらに節約します。
Frozn

@cliffrootうーん、私は最初にそれを試しましたが、ディスクには何も書き込まないようでした。明日再試行します。現在、IDEがなく、ファイルI / Oがideoneで機能しません。
ケビンCruijssen 16

1

eacal、26バイト

write a string Hello World

このwritesa string Hello Worldto fileがa存在しない場合は作成します。基本的に:

write <fileName> <exec>

そして

string <params to convert to string>

次のようにプログラムを実行します。

λ node eacal.js writeFile

1

J、21バイト

'Hello World'1!:3<'o'

これはo、現在のディレクトリのファイル、またはファイルから呼び出されていない場合はファイルに書き込みj64-804ます。1!:3は外部への書き込みであり<'o'、ボックス化されたファイル名です(ファイル名はボックス化する必要があります)。LHSは書き込む文字列です。


1

JavaScript、89バイト

このコードはChromeでテストされました。他のブラウザでは、クリックメソッドが機能するために、要素がドキュメント内に存在する必要があります。

a=document.createElement("a");a.href="data:text/plain,Hello World";a.download=1;a.click()
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.