このK3、wikiだと半角スペースを一行ずついれないと
段下げ(テーブル化?)がめんどくさいので
それを一気にプログラムでやってしまおうかという発想
ただ単にテキストの先頭に半角スペースいれただけだけど・・・
ツールとコード両方あげときます。
#br
せっかくなので、みんなで色々な版を作ってみませう。
#contents
#br
** C++ [#v5c8f3e6]
by アブナイお兄ちゃん
// space.bat
echo on
space.exe main.cpp
pause
// テキストのすべての行にスペースを入れるプログラム
// space.cpp
#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable:4996)
#include <stdio.h>
#include <conio.h>
#include <string.h>
// メイン関数
int main(int argc,char *argv[])
{
FILE *fpRead,*fpWrite;
char buf[1024],line[1024];
if(argc == 1)
{
printf("付属のバッチファイルをお使いください\n");
getch();
return -1;
}
char *filename = argv[1];
if((fpRead = fopen(filename,"r")) == NULL)
{
printf("オープン失敗\n");
return -1;
}
char Out_File[256] = "Out_";
strcat(Out_File,filename);
if((fpWrite = fopen(Out_File,"w")) == NULL)
{
printf("オープン失敗\n");
return -1;
}
while(fgets(buf, sizeof(buf), fpRead) != NULL)
{
memset(line,0,sizeof(line));
strcpy(line, buf);
fprintf(fpWrite," %s",line);
}
fclose(fpWrite);
fclose(fpRead);
return 0;
}
使い方は全部先頭に半角スペースいれたいテキストに対して
space.batを右クリ→編集→ファイル名(ここだとmain.cppになってるところ)をかえて
space.batを起動させる
注:space.batとspace.exeは同じフォルダ内にいれておくといいかも
#br
** Python [#p6de2df4]
by ハイテク
こんな作業をC++で書くのは面倒ですよ。
こういう用途には、LL言語が最適。
と、Python実装を勝手に追記。
#!/usr/bin/python
#
import sys
src = ""
dest = ""
if len(sys.argv) == 2:
src = dest = sys.argv[1]
elif len(sys.argv) == 3:
src = sys.argv[1]
dest = sys.argv[2]
else:
print "space.py\n usage: space.py targetfile\n\tspace.py sourcefile destfile"
quit()
lines = file(src, "r").readlines()
f = file(dest, "w")
for line in lines:
f.write(" "+line)
f.close
usage:
menum:util touta$ ./space.py
space.py
usage: space.py targetfile
space.py sourcefile destfile
#br
** Ruby [#l894c86d]
by ハイテク
ついでにrubyも。
#!/usr/bin/ruby
#
src = ""
dest = ""
if ARGV.length == 1
src = dest = ARGV[0]
elsif ARGV.length == 2
src = ARGV[0]
dest = ARGV[1]
else
puts "space.rb\n usage: space.rb targetfile\n\tspace.rb sourcefile destfile"
exit
end
f = open(src,"r")
d = f.read
f.close
d.gsub!(/\n/,"\n ")
f = open(dest,"w")
f.write " "+d
f.close
usage:
menum:utls touta$ ./space.rb
space.rb
usage: space.rb targetfile
space.rb sourcefile destfile