0

どうすればこれを作ることができますか

content[i].gsub("\n", "\\n")

これを(のようなもので)ファイルに書き込みます

str = "some text\n"

私はファイルを取得し、それから単一の文字列を作成して、作業中のソースコードに挿入できるコードを書いています。

私が間違っていて、私のエラーが実際にはコードの別の場所にある場合は、次のようになります。

#!/bin/usr/ruby
#reads a file and parses into a single string declaration in language of choice
#another little snippet to make my job easier when writing lots of code
#programmed by michael ward
# h3xc0ntr0l@gmail.com | gists.github.com/michaelfward


# ***************************************
#              example scrips
#  with writefiles 
#   | writefiles [file with paths] [file to write*]
#   | makestring [file to write* (actually is read, but same as above)] [lang] 
#****************************************


def readFile(path)
  fd = File.open(path, "r")
  content = []
  fd.each_line {|x| content.push(x)}
  content = fixnewlines(content)
  str = content.join()
  str
end

def fixnewlines(content)
  content.each_index do |i|
    content[i].gsub("\n", "\\n")
  end
end

def usage
  puts "makestring [file to read] [language output]"
  exit
end

langs = {"rb"=>"str =", "js" => "var str =", "c"=> "char str[] ="}

usage unless ARGV.length == 2
lang = ARGV[1]
path = ARGV[0]
str = readFile(path)
if langs[lang] == nil
  if lang == "c++" || lang == "cpp" || lang == "c#"
    puts "#{lang[c]}#{str}"
  else
    puts "unrecognized language found. supported languages are"
    langs.each_key {|k| puts "   #{k}"}
    exit
  end
else
  puts "#{langs[lang]} #{str}"
end
4

2 に答える 2

0

使用しているプラ​​ットフォームによって異なります。Unix は\n行末文字として使用しますが、Windows は を使用し\r\nます。\\nどちらのプラットフォームでも動作するとは思わない改行文字をエスケープしますが、すべての改行文字を置き換えているようです。

于 2015-03-31T22:06:09.323 に答える