csvからhtml表生成最強言語は?
■ このスレッドは過去ログ倉庫に格納されています
0001ほんとのとこは?
NGNG表を生成するプログラムの作成で
どの言語で、どのようにすれば、
最小の行数で作れますか?
または、実行ファイルが最小サイズ
になるのはどれですか?
または、csvファイルを選択してか
ら、html表が生成されるまでの
時間が最短なのはどれですか?
簡単そうで、使い道がありそうな
このプログラムで
どの言語をどのように使うのが
最強か?教えて下さい。
実例での具体的な比較をみてみたいです。
0063デフォルトの名無しさん
NGNG一番といえるかどうか。
無駄タグ削除によるダイエットの
手間が、無視出来ない事もある。
0064デフォルトの名無しさん
NGNGじゃあLISPか(w
list<->csvなんて朝飯前だし
ちょうどlist<->HTMLなんてのも専用スレにある。
0065デフォルトの名無しさん
NGNG0066デフォルトの名無しさん
NGNGそれだけは宇宙最強の速度(・∇・)
%%
[^,\n]*, {
yytext[strlen(yytext) - 1] = '\0';
printf("<TD>%s<TD>", yytext);
}
\n printf("</TR><TR>");
. ;
%%
0067デフォルトの名無しさん
NGNG意味わかんね。
0068デフォルトの名無しさん
NGNGputs "<table>"
readlines.each do |t|
 puts "<tr><td>" + t.chop!.gsub!(/,/,"</td><td>") + "</td></tr>"
end
puts "</table>"
0069デフォルトの名無しさん
NGNG00701
NGNG>>69
いえ、結論はでてません。
まず、この板でよく見かける、言語
間の優劣合戦を拝見していると、
さまざまな観点での優劣の主張が、
乱れとんでいる様でした。
そしてそのうち”○○信者必死”
”○○厨ウザイ”というののしりあいの様になっているので。
それで、具体的なテーマを提示すれ
ば、それぞれの観点における、
このポイントでは、この言語が最強
っていう一応の結論が得られそうな
ので、スレ立てをさせて頂いた所です。
一応、現時点では、ちょこっと作って試すスクリプト系言語ではperl最強。
実用的で高性能なものを簡単に作るにはDelphi最強。
プログラマに要求される多大なスキルと、膨大な工数を許容可能ならば
アセンブラ最強。
の様ですが、まだまだ、他の言語からの、反対意見ありそうなので、ひきつづき意見募集ちゅうでつ。
0071デフォルトの名無しさん
NGNG理由は?
0072デフォルトの名無しさん
NGNG0073デフォルトの名無しさん
NGNG19
39
41
のレスと
perlについで、動くサンプルソース
がソッコーで提供された点。
VBやVC++のサンプルが無いのは
動くサンプルを作るのが面倒だと
推測出来るところ。
0074デフォルトの名無しさん
NGNG#include <iostream>
#include <string>
#include <sstream>
#include <functional>
#include <algorithm>
#include <boost/tokenizer.hpp>
template<typename T>
class table_writer :
public std::unary_function<std::basic_string<T>, void>
{
std::basic_ostream<T>& stream_;
public:
table_writer(std::basic_ostream<T>& stream)
: stream_(stream){ }
void operator()(std::basic_string<T> elem)
{ stream_ << "<td>" << elem << "</td>"; }
};
template<typename T>
void csv2html(
std::basic_istream<T>& in,
std::basic_ostream<T>& out)
{
boost::char_separator<T> d(",");
out << "<html><head><title></title></head><body><table border=1>";
std::basic_string<T> line;
while (!std::getline(in, line).eof()) {
boost::tokenizer<
boost::char_separator<T>,
std::basic_string<T>::const_iterator,
std::basic_string<T> > t(line, d);
out << "<tr>";
std::for_each(t.begin(), t.end(),
table_writer<T>(out));
out << "</tr>";
}
out << "</table></body></html>";
}
int main()
{
std::basic_ostringstream<char> ss;
csv2html<char>(std::cin, ss);
std::cout << ss.str();
return 0;
}
0075棄教者 ◆witdLTi2
NGNGソースを最初に提供したのは>>7だぞ。長さも一番短い。
あと一番イージー&プレインな解決法(Excel)を示したのは>>3>>4だ。
お前の目は節穴かと小一時間問いつめるぞ。
それが嫌なら削除依頼出すか牛鮭定食でも食ってろ。
0076デフォルトの名無しさん
NGNGええのう、C++らしいソースやのう
でもboostは標準じゃないと思う。
0077デフォルトの名無しさん
NGNG実はUNICODEにも使えそうで全く使うことが出来ない罠
0078デフォルトの名無しさん
NGNGExcelの*.csvってのはローカル仕様だらけだぞ。
Excelに完全準拠しようとすると悲惨な目にあう。
(まだAccessのほうがスジがいい。)
以下の方言をまじめにインプリメントする気になる?
方言1:"009"は文字列「009]とは解釈されず、数値「9」と解釈される
つまり、"〜"は、文字列であることを意味しない
0で始まる数字の文字列をそのまま渡す方法はない
方言2:赤"は、文字列「赤"」と解釈される
つまり、項目の先頭でない「"」は単なる文字扱い
方言3:"〜"の中では、CR/LFかLFで項目内改行ができる
つまり、トップダウンで1行読み込み→1項目取り出し
というロジックが組めない(頭から順に1項目ずつ取り出し、
その値を評価しながら読むしかない)
方言4:=、+などで始まる項目は式になってしまう
""でくくっても無駄(あくまで、中身を評価した値が優先する)
0079デフォルトの名無しさん
NGNGBCBでDelphiと同じようなソース出したら、C++最強ってことになる?
0080デフォルトの名無しさん
NGNG最強の言語が存在するなら今ごろ言語は一つに統一されてる。
0081デフォルトの名無しさん
NGNGじゃあ次は
>>37 に準拠したコードで競争する?
>>19のコードは"aa,bb",cc のようなデータは処理出来るけど
"aa bb",cc dd, のように"で括らずに空白が入った場合もセパレートするから
0082デフォルトの名無しさん
NGNGつーか、早い者勝ちならスレを早く見た人やすでにソースがある人の
勝ちじゃない。せめて条件としてスクラッチから書くことと作成時間を
明記することが必要じゃない。
もっと言えば、言語の比較なら作成者のスキルも同じ方がいいだろうね。
0083デフォルトの名無しさん
NGNG0084デフォルトの名無しさん
NGNGカンマ直後の"だけを見ればいい カンマ直後以外の"については好きなように処理可
"で囲まれていない空白を含む文字についても実装依存可
3、 文字列中の " は "" と重ねて表現する よって ”1文字は """" である
"""" ->"
"この""もじ" ->この"もじ
"" -> 空
0085デフォルトの名無しさん
NGNGデファクトスタンダードと言う言葉を知らんのか...。
0086デフォルトの名無しさん
NGNG方言2は普通はどうなるの?
>あ"い,う"え,お
たとえば、これ。
0087デフォルトの名無しさん
NGNG方言3、改行の件は、改行を含むレコードをエンコードするスタンダードが無いから仕方がない
最初にややこしい文字は全部 %16進2桁 とかやればキレイだったかもしれないね
あるいは \n とかc言語方式とか
0088デフォルトの名無しさん
NGNGttp://www.din.or.jp/~egawa-n/delphi/func.html ここの CsvSeparateに変更すればそれでいいんじゃない?
0089デフォルトの名無しさん
NGNGそんなこと言ったら、C++はεπιστημη氏のCSVTokenizerで一発っす
0090デフォルトの名無しさん
NGNG文字列全体を先頭から処理してゆくしかないでしょ
0091デフォルトの名無しさん
NGNG>>33に準拠したコードって話なのに、どうしてexcel準拠前提で話し始めるの?
00921
NGNGすみません、不適切な部分を訂正します。
コンパイルするタイプで実用的で
高性能なものを簡単に作るにはDelphi最強。
perlのソースが最も早く短く提示
された事は認識してまして
スクリプト系最強と表現しましたが
Delphiについてが不適切でした。
その後、C++が提示されましたので
Delphi最強から、Delphi最強?に
なりました。
拝見した後、牛鮭定を食いに逝きましたが、財布をチェックしたら並
しか食えませんでした。
0093デフォルトの名無しさん
NGNG0094デフォルトの名無しさん
NGNG0095デフォルトの名無しさん
NGNG牛丼です。
単に「並」とたのんだので。
0096Delphi標準入出力バージョン
NGNG{$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デフォルトの名無しさん
NGNG0098デフォルトの名無しさん
NGNG””で囲まないで空白が入っていた時とか そこでセパレートされてしまうね
だから読み込みするなら >>88 のようなのを自作するしかないと思う
0099デフォルトの名無しさん
NGNG0100デフォルトの名無しさん
NGNGその他の古代言語の完全なプログラムも
見てみたい気がする。
0101デフォルトの名無しさん
NGNGBASICもほしいところだね
0102デフォルトの名無しさん
NGNG0103デフォルトの名無しさん
NGNG意味あるのか?
副作用使いまくりになるじゃん
0104デフォルトの名無しさん
NGNGHTMLTableWriter out = new HTMLTableWriter(new FileWriter("html"));
String[] line;
while((line = in.next()) != null)
out.write(line);
out.close();
in.close();
0105デフォルトの名無しさん
NGNG■ このスレッドは過去ログ倉庫に格納されています