2009-05-01 3 views
1

例を見てみましょう。 "file1" - ファイルには、 "file1"という内容のコンテンツがあります。 "file2" - ファイルは内容 "file2"を持ち、それ自体の名前です。このパターンは、77個のファイルをカバーするまで続きます。 77ファイルを実行する最も簡単な方法は何ですか?どのように77のファイルを作成できますか?その内容は各ファイルの名前ですか?

私はコンパイル時に時間がかかる傾向があるので、いくつかの詳細をまとめます。 "chmodの700 filename.some_ending"

RUNNING:コードに

権限をコンパイルする方法を

Intructions "./filename.some_ending" コンパイルする方法

を?

  1. 使用 "のjavac filename.javac" のようなJavaのための
  2. 使用javacの "./a.out。" "gccのFILENAME.C"、次に実行などのC++/Cのためのgcc、その後、実行しますそれは "Javaクラス"(エラー?!)と
  3. フォートラン?
  4. ... more?
+6

親愛なる神、なぜ??? –

+1

私の問題を分析するためのテストデータが必要です:http://stackoverflow.com/questions/809761/moving-files-and-folders-accidentally-to-non-existent-places。また、私はこの種のことを好きです:) –

+0

あなたがこれをコミュニティウィキにしたのなら、それはコードゴルフの競争かもしれません。 – Min

答えて

19
#!/bin/bash 
for i in {1..77} 
do 
    echo file$i > file$i 
done 
+6

{1..77}は、GNU bashバージョン2.05b.0(1)-release(powerpc-apple-darwin8.0)で動作しません。 "seq 1 77'のiはもっと普遍的に働くはずです。 –

3

Java版、楽しみのため。

import java.io.*; 

public class HA { 
    public static void main(String[] args) throws Exception { 
     String file = "file"; 
     for (int i = 1; i <= 77; i++){ 
      PrintStream out = new PrintStream(new File(file + i)); 
      out.print(file + i); 
      out.close(); 
     } 
    } 
} 
3

たPerl:

#!/usr/bin/env perl 
for (my $i = 1; $i <= 77; ++$i) 
{ 
    open(my $fh, '>', 'file' . $i); 
    print { $fh } ('file' . $i); 
    close($fh); 
} 
+0

PerlでCスタイルのループを使う必要はほとんどありません。 "for my $ i(1..77)"は同等です。さらに、フェンスポストエラーを心配する必要はありません。 –

6

のPython:

for i in range(1,78): open("file" + str(i), "w").write("file" + str(i)) 
3

私はそれを持っているファイルのつもりと仮定すると、拡張機能を追加しました。

のFortran:

character(11) file_name 
do i=1,77 
    write(file_name,"('file',i2.2,'.txt')")i 
    open(unit=1, file=file_name, status='replace') 
    write(1,"(a)")file_name 
    close(unit=1) 
enddo 
end 
4

C++:簡潔上で読める好む人のための

#include <sstream> 
#include <fstream> 

using namespace std; 

int main() 
{ 
    for (int i = 1; i <= 77; i++) { 
      stringstream s; 
      s << "file" << i; 
      ofstream out(s.str().c_str()); 
      out << s.str(); 
      out.close(); 
    } 
    return 0; 
} 
+0

あなたはout.close()を呼び出す必要はありません。 – GManNickG

+0

@GMan:ファイルポインタを閉じることはできませんか? – Ankit

+0

@Ankit:いいえC++にはRAII –

2

Pythonのバージョン:

filenames = ("file%(num)d" % vars() for num in range(1, 78)) 
for filename in filenames: 
    open(filename, 'w').write(filename) 
+3

があります。個人的には、私は他のPythonバージョンが読みやすくなっていると思います。 – Ankit

4

C:

#include <stdio.h> 

int main() { 
    char buffer[8]; 
    FILE* f; 
    int i; 
    for(i = 1; i <= 77; i++){ 
     sprintf(buffer, "file%d", i); 
     if((f = fopen(buffer, "w")) != NULL){ 
      fputs(buffer, f); 
      fclose(f); 
     } 
    } 
    return 0; 
} 
1

のC#、なぜ:

using System.IO; 

namespace FileCreator 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      for (int i = 1; i <= 77; i++) 
      { 
       TextWriter f = new StreamWriter("file" + i); 
       f.Write("file" + i); 
       f.Close(); 
      } 
     } 
    } 
} 
1

ルビー:

77.times { |i| File.open("file#{i+1}", "w") { |f| f.puts "file#{i+1}" } } 
1

デルファイ/ Free Pascalの

program Create77Files; 

{$APPTYPE CONSOLE} 

uses 
    Classes, SysUtils; 

var 
    I: Integer; 
    S: string; 
begin 
    for I := 1 to 77 do 
    begin 
    S:= 'file' + IntToStr(I); 
    with TStringStream.Create(S) do 
    begin 
     SaveToFile(S); 
     Free; 
    end; 
    end; 
end. 
0

なGroovy:

77.times{n->n++;new File('file'+n).withWriter{it.writeLine('file'+n)}} 
関連する問題