एक फ़ाइल बनाएं और लिखें


11

चुनौती

एक नई फ़ाइल बनाएं और उसे स्ट्रिंग लिखें Hello World

प्रतिबंध

  • आपकी चुनौती को डिस्क पर फ़ाइल में लिखना होगा, फ़ाइल सिस्टम में।

  • फ़ाइल दुभाषिया के सामान्य संचालन के दौरान उत्पन्न लॉग फ़ाइल नहीं हो सकती है।

  • फ़ाइल में केवल स्ट्रिंग होना चाहिए Hello World। इसे एक अनुगामी न्यूलाइन या न्यूनतम व्हाट्सएप शामिल करने की अनुमति है। अन्य कोई सामग्री नहीं।

  • प्रोग्राम को चलाने के लिए आवश्यक होने के अलावा कोई भी कमांड-लाइन झंडे / पाइप (आदि) की अनुमति नहीं है। (उदा perl -p)

टिप्पणियाँ

  • यह , इसलिए बाइट्स जीत में सबसे छोटा कार्यक्रम है।

  • नियमों का अक्षर नहीं, भावना का पालन करें।


क्या ट्रेलिंग न्यूलाइन ठीक है?
विनी

@ हां, हाँ, यह ठीक है
dkudriavtsev

क्या फ़ाइल की सामग्री का फ़ाइल नाम हिस्सा है?
कज़िनकोकेन

जवाबों:


1

अजगर, 14 बाइट्स

.w"Hello World

नामक फ़ाइल में आउटपुट करता है o.txt


24

पायथन 2, 32 बाइट्स

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

हां, यह वैध अजगर है


1
ओह। स्पष्टीकरण?
जेम्स

1
@DrGreenEggsandIronMan यह मुख्य चाल की तरह लग रहा है कि *एक समारोह में अलग-अलग तर्कों में चलने योग्य कैसे विभाजित किया जा सकता है, इसलिए open(*"ww")बन जाता है open("w","w")
वैल्यू इंक

7
@ValueInk वास्तव में मुख्य ट्रिक विस्तारित प्रिंट स्टेटमेंट का उपयोग है जो जंगली में शायद ही कभी देखा जाता है।
xsot

1
यह वास्तव में एक शांत चाल है, लेकिन अगर यह आपकी *"ww"चाल के लिए नहीं था, तो आप यहां अन्य पायथन उत्तर के साथ बंधे होंगे, जो open(...).write(...)एक ही बाइट की गिनती के लिए उपयोग करता है
वैल्यू इंक

उफ़, मुझे भी इस बात का अहसास नहीं था।
xsot


6

zsh, 17 बाइट्स

<<<Hello\ World>x

नामक फ़ाइल में आउटपुट करता है x


क्या आप >पाइप के रूप में व्याख्या कर सकते हैं ?
कज़िनकोकेन

के बारे में क्या>Hello\ World
CousinCocaine


5

बैच, 18 बाइट्स

echo Hello World>f

मुझे लगता है कि आपको @इस (कंसोल) के रूप में एक या फिर से शीर्षक की आवश्यकता है ।
आउटगोल्फर

@आवश्यक नहीं है।
शॉन वाइल्ड

इसे बैच फ़ाइल में सहेजने का प्रयास करें और इसे इस तरह से चलाएँ (सीधे कमांड टाइप न करें)। फिर आप देखेंगे कि आपको इसकी आवश्यकता है @, क्योंकि कमांड अन्यथा मुद्रित है। इसका मतलब है कि आपके पास दो विकल्प हैं: 1) इस उत्तर को हटा दें क्योंकि यह एक डुबकी होगी 2) रिलेबेल (कंसोल) के रूप में।
आउटगॉल्फ ऑक्ट

5

विम, 15 + 2 == 17 बाइट्स

iHello World<esc>ZZ

के vim fबजाय के साथ इसे लॉन्च करने के लिए +2 बाइट्स vim। इसके अतिरिक्त, यह संस्करण इसके लिए काम करता है:

iHello World<C-o>ZZ

अगर इस तरह विम को लॉन्च करने की अनुमति नहीं है, तो यह भी है:

विम, 18 बाइट्स

iHello World<esc>:w f<cr>

साइड नोट: यह एक पॉलीग्लॉट है। वी में वही काम होता है, सिवाय इसके कि यह एक बाइट छोटी होती है (चूंकि <cr>अंत में निहित है।)


आखिर के लिए `f <cr>` क्या है?
ज़ेवी

@Zwei 'f' फ़ाइल का नाम है, और <cr>(जो "एन्टर" के लिए एक एमनोमिक है , एक बाइट) कमांड को चलाने के लिए आवश्यक है। कमांड जो एक कोलन से शुरू होते हैं, विम के अंदर एक मिनी शेल की तरह होते हैं, और कमांड :wएक फाइल में लिखने के लिए कमांड है।
जेम्स

<esc>5 बाइट्स और <cr>4 के रूप में नहीं गिना जाना चाहिए , क्योंकि उन्हें पूरी तरह से टाइप करना है?
बार्ट वैन नीरोप

@BartvanNierop नहीं, <esc>"द एस्केप की" के लिए सिर्फ नोटेशन है, जो है 0x1B, और <cr>"द कैरिज रिटर्न की" के लिए नोटेशन है0x0B
James

1
अच्छी तरह से पहले, कीस्ट्रोक्स == बाइट्स के साथ वीम स्कोर करने के लिए एक मिसाल है , लेकिन दूसरी बार, वीम-कुंजी संकेतन का उपयोग किए बिना इसे "कोड" में लिखने के कई तरीके हैं। उदाहरण के लिए, यदि आप <C-v>शाब्दिक पलायन चरित्र और शाब्दिक गाड़ी वापसी सम्मिलित करने के लिए उपयोग करते हैं, तो आप इन सभी स्ट्रोक को एक मैक्रो को असाइन कर सकते हैं, और इसे इस तरह से चला सकते हैं। आप इसे vimscript में भी कर सकते हैं normal 'iHello World^[:w f^Mजिसके साथ vim इसे प्रदर्शित करता है , न कि आप इसे कैसे दर्ज करते हैं। ^[और ^Mदोनों एक-एक बाइट हैं।
जेम्स

4

बैच, 19 बाइट्स

@echo Hello World>o

यकीन नहीं होता कि यह गलत है, लेकिन यह "हैलो वर्ल्ड" और फाइल को एक नई लाइन देता है, बजाय "हैलो वर्ल्ड" के
brianush1

'@' किसके लिए अच्छा है?
PEAR

@PEAR यह STDOUT में कमांड को इको होने से रोकता है।
नील


3

सी, 44 बाइट्स

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

1
इसके बिना कुछ सिस्टम पर सेगफॉल्ट होगा#include <stdio.h>
स्टीवन पेनी

@StevenPenny जब तक कोई सिस्टम / कंपाइलर है, जहां इसकी गारंटी नहीं है कि यह segfault नहीं है, यह ठीक है। उत्तर आम तौर पर पोर्टेबल होना जरूरी नहीं है।
मार्टिन एंडर


3

पॉवरशेल, 15 बाइट्स

"Hello World">o

>oवर्तमान निर्देशिका में नामक फ़ाइल में स्ट्रिंग को पुनर्निर्देशित करता है ।





2

के, 20 बाइट्स

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

पुष्टि;

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

चूँकि किसी ने अभी तक यह नहीं कहा था, प्रोग्रामिंग पहेलियाँ और कोड गोल्फ में आपका स्वागत है।
आउटगोल्फर

बहुत सराहना की!
Chromozorz

ठीक। मुझे यह भी लगता है कि आपके पास अतिरिक्त प्रमुख स्थान हैं। यदि आप चाहते हैं कि मैं रिक्त स्थान संपादित करूंगा (मुझे नहीं पता कि क्या वे जानबूझकर रखे गए हैं, लेकिन मुझे लगता है कि यह अनजाने में था।)
आउटगोल्फ़र

2

क्लोजर, 23 बाइट्स

#(spit"x""Hello World")

बेनामी फ़ंक्शन जो फ़ाइल नाम बनाता है xऔर Hello Worldवहां लिखता है।


2

Node.js, 42 बाइट्स

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

मुझे नहीं लगता कि इसके स्पष्टीकरण की आवश्यकता है

Node.js REPL, 31 बाइट्स

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

उत्तर में किसी कारण के लिए आपको शामिल करने की आवश्यकता नहीं है fs


मुझे नहीं लगता कि यह काम करता है। इसके लिए काम करने के लिए, आपको आवश्यकता होगी require("fs").writeFile("o","Hello World")। अन्यथा, एफएस शामिल नहीं है।
कॉनर ओ'ब्रायन

@ C @O'Bʀɪᴇɴ हुह ठीक है। REPL में किसी कारण के लिए काम करता है
Downgoat

2

सी#, 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

  • अनावश्यक नामस्थान हटा दिया गया
  • मुख्य को बदला हुआ नाम (क्योंकि अन्यथा इसे मुख्य फ़ंक्शन के रूप में नहीं पहचाना जाएगा)
  • हटाया गया usingनिर्देश (धन्यवाद जीन लोरेनको )

Rev3

  • उस स्थान को हटा दिया जो अंदर घुस गया था।

सी # (बॉयलरप्लेट के बिना), 47 बाइट्स

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

आप कुछ बाइट्स का उपयोग करके इसे हटा सकते हैं और सीधे इसे विधि में जोड़ सकते हैं: System.IO.File.WriteAllText [...]
जीन लोरेनको

@ JeanLourenço धन्यवाद। मेरे पास वह मूल था और फिर अज्ञात कारणों से इसे बदल दिया।
बार्ट वैन नीरोप

2

आर, 38 36 35 बाइट्स

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

मुझे पसंद है कि कैसे बनाई गई फ़ाइल का कोई नाम नहीं है! यह सिर्फ .txtकुछ भी है, वास्तव में!

-2 बाइट्स @PEAR टिप्पणी के लिए धन्यवाद!
-1 बाइट्स @BartvanNierop को धन्यवाद!

यह कोड बिना किसी नाम के एक फ़ाइल का उत्पादन करेगा।


1
क्या '.txt' वास्तव में आवश्यक है? फ़ाइल अंत उपयोगकर्ता के लिए ही हैं। एक एकल चरित्र मेरे लिए पर्याप्त हो सकता है।
PEAR

1
मुझे R पता नहीं है, लेकिन क्या आप @ PEAR के सुझाव के अनुसार, फ़ाइल का नामकरण करके, किसी अन्य बाइट को शेव नहीं कर सकते "a"?
बजे बार्ट वैन नेरोप


1

पायथन, 34 बाइट्स

open("h","w").write("Hello World")

नामक फ़ाइल में आउटपुट करता है h


1

एपीएलएक्स , 15 बाइट्स

'Hello World'1

एक एपीएल घटक फ़ाइल बनाता है जिसमें केवल एक घटक होता है; वांछित स्ट्रिंग। इसे वापस पढ़ा जा सकता है:

      'Hello World'1
Hello World


1

रैकेट, 43 बाइट्स

(display"Hello World"(open-output-file"f"))

1

जूलिया, 47 बाइट्स

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

मैंने प्रयोग करने की कोशिश की writedlm, लेकिन यह काम नहीं किया।




1

जावा 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");}}

Ungolfed:

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

जावा मेरी पसंदीदा भाषा लेकिन यीशु मसीह यह प्रफुल्लित है कितना बुरा एक गोल्फ भाषा यह haha है
शॉन जंगली

4
@AlanTuning वास्तव में। xD मैं काम पर जावा के साथ काम करता हूं, और यह जावा में कोड-गोल्फ के लिए मजेदार है। आप जावा का उपयोग करके यहां एक कोड-गोल्फ चुनौती जीतने में सक्षम होंगे, लेकिन जावा कोड को यथासंभव कम लिखना अभी भी मजेदार है।
केविन क्रूज़सेन

2
अच्छी तरह से, आप कर सकते हैं बसvoid f()throws Exception{new java.io.PrintWriter("x").print("Hello World");}
cliffroot

java.io.Writer p=new java.io.PrintWriterआपको कुछ और चरित्र बचाता है।
फ्रोज़न

@cliffroot हम्म, मैंने शुरू में कोशिश की थी, लेकिन यह डिस्क पर कुछ भी लिखने के लिए नहीं लगता था। कल फिर से कोशिश करेंगे, वर्तमान में मेरे पास आईडीई नहीं है और आई / ओ फाइल आइडोन में काम नहीं करती है।
केविन क्रूज़सेन

1

ईगल , 26 बाइट्स

write a string Hello World

फाइल करने के लिए यह writeसा , अगर मौजूद नहीं है। मूल रूप से:string Hello Worlda

write <fileName> <exec>

तथा

string <params to convert to string>

कार्यक्रम को इस रूप में चलाएं:

λ node eacal.js writeFile

1

जे, 21 बाइट्स

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

यह oवर्तमान निर्देशिका में एक फ़ाइल को लिखता है , या, यदि आपकी j64-804फ़ाइल में फ़ाइल से नहीं बुलाया जाता है । 1!:3विदेशी है, और <'o'बॉक्सिंग फ़ाइल नाम है (फ़ाइल नाम बॉक्स करने की आवश्यकता है)। LHS लिखने के लिए स्ट्रिंग है।


1

जावास्क्रिप्ट, 89 बाइट्स

इस कोड का क्रोम में परीक्षण किया गया था। अन्य ब्राउज़रों में, काम करने के लिए क्लिक विधि के लिए दस्तावेज़ में तत्व होना चाहिए।

a=document.createElement("a");a.href="data:text/plain,Hello World";a.download=1;a.click()
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.