トップページ⇒tech
105コメント31KB

csvからhtml表生成最強言語は?

■ このスレッドは過去ログ倉庫に格納されています
0001ほんとのとこは?NGNG
CSVファイルを読み込ませ、htmlの
表を生成するプログラムの作成で
どの言語で、どのようにすれば、
最小の行数で作れますか?

または、実行ファイルが最小サイズ
になるのはどれですか?

または、csvファイルを選択してか
ら、html表が生成されるまでの
時間が最短なのはどれですか?

簡単そうで、使い道がありそうな
このプログラムで
どの言語をどのように使うのが
最強か?教えて下さい。

実例での具体的な比較をみてみたいです。

0075棄教者 ◆witdLTi2 NGNG
糞スレ立てた>>1へ
ソースを最初に提供したのは>>7だぞ。長さも一番短い。
あと一番イージー&プレインな解決法(Excel)を示したのは>>3>>4だ。
お前の目は節穴かと小一時間問いつめるぞ。
それが嫌なら削除依頼出すか牛鮭定食でも食ってろ。
0076デフォルトの名無しさんNGNG
>>74

ええのう、C++らしいソースやのう
でもboostは標準じゃないと思う。
0077デフォルトの名無しさんNGNG
>>74
実はUNICODEにも使えそうで全く使うことが出来ない罠
0078デフォルトの名無しさんNGNG
上のほうでExcelの*.csvが標準みたいに書かれているけど、
Excelの*.csvってのはローカル仕様だらけだぞ。
Excelに完全準拠しようとすると悲惨な目にあう。
(まだAccessのほうがスジがいい。)

以下の方言をまじめにインプリメントする気になる?
方言1:"009"は文字列「009]とは解釈されず、数値「9」と解釈される
     つまり、"〜"は、文字列であることを意味しない
     0で始まる数字の文字列をそのまま渡す方法はない
方言2:赤"は、文字列「赤"」と解釈される
     つまり、項目の先頭でない「"」は単なる文字扱い
方言3:"〜"の中では、CR/LFかLFで項目内改行ができる
     つまり、トップダウンで1行読み込み→1項目取り出し
     というロジックが組めない(頭から順に1項目ずつ取り出し、
     その値を評価しながら読むしかない)
方言4:=、+などで始まる項目は式になってしまう
     ""でくくっても無駄(あくまで、中身を評価した値が優先する)
0079デフォルトの名無しさんNGNG
>>73
BCBでDelphiと同じようなソース出したら、C++最強ってことになる?
0080デフォルトの名無しさんNGNG
どの言語がいいかなんて、作る物と作る人で違ってくるだろ。
最強の言語が存在するなら今ごろ言語は一つに統一されてる。
0081デフォルトの名無しさんNGNG
とりあえず速くコード出した言語順で 1位Perl 2位Delphi なんだからそれでいいじゃない

じゃあ次は
>>37 に準拠したコードで競争する?

>>19のコードは"aa,bb",cc のようなデータは処理出来るけど
"aa bb",cc dd, のように"で括らずに空白が入った場合もセパレートするから
0082デフォルトの名無しさんNGNG
>>81
つーか、早い者勝ちならスレを早く見た人やすでにソースがある人の
勝ちじゃない。せめて条件としてスクラッチから書くことと作成時間を
明記することが必要じゃない。

もっと言えば、言語の比較なら作成者のスキルも同じ方がいいだろうね。
0083デフォルトの名無しさんNGNG
3の仕様が不明なんだけど
0084デフォルトの名無しさんNGNG
2、 少なくともカンマまたは " を含む文字列は "文字列" とした上でカンマで区切られる
   カンマ直後の"だけを見ればいい カンマ直後以外の"については好きなように処理可
   "で囲まれていない空白を含む文字についても実装依存可

3、 文字列中の " は "" と重ねて表現する よって ”1文字は """" である
   """"       ->"
   "この""もじ"  ->この"もじ
   ""         -> 空


0085デフォルトの名無しさんNGNG
>>78
デファクトスタンダードと言う言葉を知らんのか...。
0086デフォルトの名無しさんNGNG
>>78
方言2は普通はどうなるの?
>あ"い,う"え,お
たとえば、これ。
0087デフォルトの名無しさんNGNG
>>86 普通は、ややこしい文字を含む場合は "で囲むから問題にならないのでしょう

方言3、改行の件は、改行を含むレコードをエンコードするスタンダードが無いから仕方がない

最初にややこしい文字は全部 %16進2桁 とかやればキレイだったかもしれないね
あるいは \n とかc言語方式とか
0088デフォルトの名無しさんNGNG
Delphiのコードの改良なら CommaTextへの代入を
ttp://www.din.or.jp/~egawa-n/delphi/func.html ここの CsvSeparateに変更すればそれでいいんじゃない?
0089デフォルトの名無しさんNGNG
>>88
そんなこと言ったら、C++はεπιστημη氏のCSVTokenizerで一発っす
0090デフォルトの名無しさんNGNG
改行の問題を >>88-89 は解決出来ないと思うな

文字列全体を先頭から処理してゆくしかないでしょ
0091デフォルトの名無しさんNGNG
>>90
>>33に準拠したコードって話なのに、どうしてexcel準拠前提で話し始めるの?
00921NGNG
>>75

すみません、不適切な部分を訂正します。

コンパイルするタイプで実用的で
高性能なものを簡単に作るにはDelphi最強。

perlのソースが最も早く短く提示
された事は認識してまして

スクリプト系最強と表現しましたが

Delphiについてが不適切でした。
 
その後、C++が提示されましたので
Delphi最強から、Delphi最強?に
なりました。

拝見した後、牛鮭定を食いに逝きましたが、財布をチェックしたら並
しか食えませんでした。
0093デフォルトの名無しさんNGNG
Delphi最強。C++?( ´,_ゝ`)プッ
0094デフォルトの名無しさんNGNG
それは牛鮭定食の並を食べたってこと?
0095デフォルトの名無しさんNGNG
>>94
牛丼です。
単に「並」とたのんだので。
0096Delphi標準入出力バージョンNGNG
program cvs2html;
{$apptype console}
uses Classes, SysUtils;
var i: Integer; s: String; cvs: TStrings;
begin
 cvs := TStringList.Create;
 if ParamCount = 1 then s := ParamStr(1) else s := 'noname';
 Writeln('<HTML><HEAD><TITLE>', s, '</TITLE></HEAD><BODY><TABLE BORDER>');
 while not Eof(Input) do begin
  Readln(s);
  cvs.CommaText := s;
  Writeln('<TR>');
  for i := 0 to cvs.Count-1 do
   Writeln(' <TD>', cvs[i], '</TD>');
  Writeln('</TR>');
 end;
 Writeln('</TABLE></BODY></HTML>');
end.
0097デフォルトの名無しさんNGNG
CommaTextって挙動おかしいよね。
0098デフォルトの名無しさんNGNG
基本的にCommaTextは 自分で吐いたものを自分で読めたらいいや程度にしてる感じ

””で囲まないで空白が入っていた時とか そこでセパレートされてしまうね
だから読み込みするなら >>88 のようなのを自作するしかないと思う

0099デフォルトの名無しさんNGNG
1って丁寧なんだがDQNなんだがわがんね〜
0100デフォルトの名無しさんNGNG
遅くてもいいから、COBOLとか、PL-Iとか、
その他の古代言語の完全なプログラムも
見てみたい気がする。
0101デフォルトの名無しさんNGNG
>>100
BASICもほしいところだね
0102デフォルトの名無しさんNGNG
関数型言語で誰か書いて下さい。できればML系で。
0103デフォルトの名無しさんNGNG
>>102
意味あるのか?
副作用使いまくりになるじゃん
0104デフォルトの名無しさんNGNG
CSVReader in = new CSVReader(new FileReader("csv"));
HTMLTableWriter out = new HTMLTableWriter(new FileWriter("html"));
String[] line;
while((line = in.next()) != null)
out.write(line);
out.close();
in.close();
0105デフォルトの名無しさんNGNG
俺言語の csv2html が最強。
■ このスレッドは過去ログ倉庫に格納されています