• ベストアンサー

ファイル生成について(C初心者)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <head> <meta http-equiv="Content-Language" content="ja"> <meta http-equiv="Content-Style-Type" content="text/css"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <meta http-equiv="refresh";URL=http://***.**.**/***/***/ABCD001.html"> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> </head> <body> </body> </html> ファイル名=ABCD001.html お世話になります。 上記のようなhtmlファイルがあって http://www.***.**.**/***/***/ABCD001.htmlの ABCD001.htmlの部分だけ変更して新しくファイルを生成しようと思います。 変更する場所のリストはテキストファイル(list.txt)に入っており ABCD001.html~ABCD100.htmlまであります。 そのため最終的には100個のファイルが生成されます。 このようなCのプログラムを作成したいのですが どうやればいいのでしょうか? fwrite・fscanfを使用するのではないかと思いましたが よくわかりませんでした。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.6

> もし、ファイル名が全て違う場合 > 例えば > 01tokyo_01.html > 01tokyo_02.html > ... > 等の場合はリスト化して生成しなければ > いけませんでしょうか? それが一番簡単です。 const char* name[] = {  "",  "01tokyo_01.html",  "01tokyo_02.html", ... }; とでもしておくだけ。

snoopy725
質問者

お礼

完璧に出ました! 何度も質問して申し訳ありません。 本当にありがとうございました。

その他の回答 (5)

  • ske6
  • ベストアンサー率50% (1/2)
回答No.5

#include <stdio.h> #include <stdlib.h> #include <string.h> int main(void){ char *mae="ファイル名より前"; char *usiro="ファイル名から後"; FILE *fp; char buf[sizeof("ABCD000.html\n")]; while(!feof(stdin)){ memset(buf,0,sizeof(buf)); fgets(buf,sizeof(buf),stdin); buf[strlen(buf)-1]='\0'; if(!strlen(buf)) break; if(!(fp=fopen(buf,"w"))) return 1; fputs(mae,fp); fputs(buf,fp); fputs(usiro,fp); fclose(fp); } return 0; } -- コマンドラインから > xxx < list.txt (xxxはexeファイルの名前です) -- これでできると思います

snoopy725
質問者

お礼

外部ファイルから作成する方法を 教えて頂きありがとうございます。 これからの参考にさせて頂きます。

回答No.4

> fprintf(fp,"<!DOCTYPE........%s...</html>\n", url); > この部分入れる文字列に「"」が多いため文字列と判断してくれません。 > > 下記の場合だと『』内のみ文字列として判断されます。 > fprintf(fp,『"<!DOCTYPE HTML PUBLIC "』-//W3C//DTD HTML 4.01 Transitional//EN">\n", url); > > この場合、どのようにすればいいのでしょうか? 「"」は文字列のデリミタですので、文字列として使用したい場合は、 「\」でエスケープする必要があります。 fprintf(fp,"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n", url); となります。 ちなみに、「\」を出したい場合も同様です。(\\とすれば、\が1つ出力される)

snoopy725
質問者

お礼

ありがとうございました。 「¥」の意味も分かり ちゃんと生成されるようになりました。 身勝手な質問で申し訳ないのですが もし、ファイル名が全て違う場合 例えば 01tokyo_01.html 01tokyo_02.html 02kanagawa_01.html 03saitama_01.html 03saitama_02.html 03saitama_03.html 等の場合はリスト化して生成しなければ いけませんでしょうか? もしよろしければご教授願います。

回答No.3

No.2 です。 よく見たら、本文の中に変わるところがあるのですね。 失礼しました。 No.2 の方法ではだめです。

snoopy725
質問者

お礼

お返事ありがとうございます。 今回の質問とは少し違いますが 知らない内容でしたので、参考になりました。 ありがとうございました。

回答No.2

もしも、比較的最近の Windows をお使いであれば、そして、コマンドプロンプトの使い方がわかるのであれば、コマンドプロンプトからでもできます。 C言語を使いませんが。 list.txt の中に、 ---------------- abcd001.html abcd002.html …… abcd100.html --------------- のようなデータがあると仮定して、もうひとつ、ファイルのひな形になるものを、base.html などという名前で作ります。 これを、list.txt のファイル名でコピーすればできあがり。 具体的には、コマンドプロンプトから、 for /f %i in (list.txt) do copy base.html %i です。

回答No.1

char url[64]; char fname[64]; int i; for ( i = 1; i <= 100; ++i ) { /* iをタネにfnameとurlを作る: (sprintfで作れます) */ FILE* fp = fopen(fname,"wt"); fprintf(fp,"<!DOCTYPE........%s...</html>\n", url); fclose(fp); /* ↑書き換える箇所だけ%sにした長い長い文字列 */ }

snoopy725
質問者

補足

お返事ありがとうございます。 参考にさせて頂いたのですが fprintf(fp,"<!DOCTYPE........%s...</html>\n", url); この部分入れる文字列に「"」が多いため文字列と判断してくれません。 下記の場合だと『』内のみ文字列として判断されます。 fprintf(fp,『"<!DOCTYPE HTML PUBLIC "』-//W3C//DTD HTML 4.01 Transitional//EN">\n", url); この場合、どのようにすればいいのでしょうか? 再度の質問で申し訳ありません、よろしくお願い致します。

関連するQ&A

  • DOMで生成したタグにCSSが適用されない(IE)

    DOMでタグを生成した場合、IEではそのタグにCSSが適用されないのですが 何かいい解決法はないでしょうか。ちなみに試したHTMLは下記の通りです。 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <title>test</title> </head> <body> <script type="text/javascript"><!-- A = document.createElement("div"); A.setAttribute("id", "A"); A.setAttribute("style", "color:red;"); document.body.appendChild(A); document.getElementById("A").appendChild(document.createTextNode("test")); --></script> </body> </html>

  • CSS今度は外部ファイル!

    前回「CSSが反映されない」で質問させていただきました。 おかげさまで、ヘッダー内で記述したものが、反映されるようになりました。 ところで、今度は外部ファイルの読み込みで「できない!」となっています。 自分ではどこがいけないのか、発見できなかったので、また皆さんのお力をいただきたいと 思います。 ○abc.css(外部ファイル) .body{ color:#006666; font-size:30px; } ○HTMLファイル <! DOCTYPE PUBLIC HTML "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html;charaset=shift_jis"> <meta http-equiv="Content-Style-Type" content="text/css"> <style type="text/css"> <!-- <link rel="stylesheet" href="abc.css" type="text/css"> --> </style> </head> <body> 背景色は濃い青緑です<br> フォントサイズは30px・・・<br> <br> になるはずです・・・ </body> </html> ・・・結果・・・ 真っ白な画面に標準フォントで表示。 ○外部ファイル .hp-name{ font-size:55px; color:#006666; text-align:center; } ⇒ファイル名 hp-name.css ○HTMLファイル <! DOCTYPE PUBLIC HTML "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <head> <meta http-equiv="Content-Type"Content="text/html;charaset=shift_jis"> <meta http-equiv="Content-Style-Type" content="text/css"> <style type="text/css"> <!-- <link rel="stylesheet" href="body.css" type="text/css"> --> </style> </head> <body> <div class="hp-name"> HP名は「○○△△◇◇」です </div> ////////////////////////////////////////////////////////////////////////////////////// 今度はどこがいけないのでしょう。 <link rel・・・・・・・・ で、外部ファイルを読み込むだけではいけないのでしょうか? それとも、外部ファイルの書き方がいけないのでしょうか? 外部ファイルには「スタイルシートの部分だけ」記述すればいいと思っていたのですが・・・ ○外部ファイルを <style type="text/css"> <!-- --> </style> をつけてみたのですが、ダメでした

  • これは何を意味しますか?

    <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META http-equiv="Content-Style-Type" content="text/css"> <TITLE></TITLE> </HEAD> <BODY> <img src="./image/2151.jpg"> </BODY> </HTML>

    • ベストアンサー
    • HTML
  • html,css初心者です。ヘッダーの余白について

    ヘッダーの余白について教えて下さい。 どうしてもヘッダーの上部分に余白ができてしまいます。 HTMLとCSSをはります。 bodyに色をつけるとヘッダー上部分の余白の色も色がついてしまうので困っています・・・ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <meta http-equiv="Content-Style-Type" content="text/css"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <link rel="stylesheet" href="font.css" type="text/css"> </head> <body> <div id="header"><!--/ #header --> あいうえお </div> </body> <html> CSS #header{ width: 980px; margin: 0 auto; background: #fff; text-align: left; } 宜しくお願いします。

    • ベストアンサー
    • HTML
  • HTMLの生成について

    PC画面のTEXTAREAに入力した内容で 携帯用(3キャリア対応)の画面を作成したいです。 一応、それっぽいファイル(HTML)を作成するところまでできました。 こんな感じで問題ないでしょうか? 注意すべき点などありましたら教えてください。 よろしくお願いします。 【test.php】 <? //ファイルの保存場所 $path = "./htmlfile/info/"; //ファイル名称 $name = date("YmdHis").".html"; $head = "<meta http-equiv='Content-Type' content='text/html; charset=shift_jis'>"; if($_POST){ $detail = nl2br(mb_convert_encoding($_POST["detail"], "SJIS", "UTF-8")); $html = <<<HTMLFILE <html><head>$head</head><body><div>$detail</div></body></html> HTMLFILE; //ファイル作成 $filename=$path.$name; touch($filename); //ファイルオープン $fp = fopen($filename,"w"); //ファイル書込み fwrite($fp,$html); //ファイルクローズ fclose($fp); } ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>ファイル生成</title> <body> <table align = "center" cellspacing="0"> <form name="form1" action="test.php" method="post"> <tr> <b>携帯サイト内容</b><br> <textarea cols="20" rows="10" name="detail"><?= $_POST["detail"] ?></textarea> </tr> <tr> <input type="submit" name="con" value="ファイル生成"> </tr> </form> </table> </body> </html>

    • ベストアンサー
    • PHP
  • htmlの超初心者です。

    htmlの超初心者です。 本を見ながらhtml文章を作成しているのですがうまくブラウザが起動しません。 本の言う通りにやっているつもりなのですがただファイルが開くだけになってしまいます。 参考までに作成したhtml文書は下のです。他に何か設定がいるのでしょうか? <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>日本めぐり旅</title> </head> <body> </body> </html>

  • googleに飛べない

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <script language="JavaScript"> <meta http-equit="refresh"content"0;http://www.google.co.jp/"> </script> <META name="GENERATOR" content="IBM WebSphere Studio Homepage Builder Version 13.0.4.0 for Windows"> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META http-equiv="Content-Style-Type" content="text/css"> <title> </title> </head> <body> <noscript> <br>JavaScriptを有効にして下さい<br> </noscript> </body> </html> googleに飛べないのですがどこの記述が間違っているのでしょうか? ご教示お願いします。

  • ホームページのヘッダ部分について

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML LANG="JA"> <HEAD> <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=Shift_JIS"> <META HTTP-EQUIV="CONTENT-STYLE-TYPE" CONTENT="text/css"> <META HTTP-EQUIV="CONTENT-SCRIPT-TYPE" CONTENT="text/javascript"> <TITLE>○○○○</TITLE> <LINK REL="STYLESHEET" TYPE="text/css" HREF="css1.css"> <meta name="keywords" content="△,△,△,△,,△,△,"> <meta name="description" content="●●●●●"> </HEAD> <BODY> … となっているのですが、無駄な部分はありますか? 順番などは合ってますか? また、こうしたほうがいい、などとアドバイスがあればぜひよろしくお願いいたします。

  • AndroidでのHTMLファイルの読み込み

    PC上で作成したHTMLファイルをAndroid(2.3)のスマートフォンで読みたいと思い、作成したファイルをスマートフォンのSDカード内に移動しました。 スマートフォン上でそのファイルを開けたのは良いのですが、リンクで別のHTMLファイルに移動しようとするとエラーが出て正常に動作しませんでした。 どうすれば読めるようになるのでしょうか? 以下に、そのHTMLファイルのソースを掲載しますので、よろしくお願いします。 このHTMLファイルから別のHTMLファイル(page1.html)に移動したいと考えています。 --------------------------------------------- <html> <head> <title>test page</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <a href="page1.html">移動</a> </body> </html> --------------------------------------------- こちらが移動先のHTMLファイル(page1.html)のソースです。 --------------------------------------------- <html> <head> <title>My Page</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> 移動完了 </body> </html> --------------------------------------------- エラーメッセージは画像ファイルの通りです。

  • 背景に指定したイメージ以外の余白を見せないようにする方法は?

    こんにちは!まさにタイトル通りの質問です。 <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=SHIFT_JIS"> <META NAME=""> <META NAME=""> <META NAME=""> <META NAME=""> <META http-equiv="refresh" content="5;url=test.html"> <SCRIPT LANGUAGE="JavaScript"> <!-- function resizeWindow(){      window.resizeTo(720,580);  } //--> </SCRIPT> <title>test</title> <style type="text/css"><!-- body { background-repeat:no-repeat;} --></style> </HEAD> <body onLoad="resizeWindow()" background="top4.jpg" width=720 height=580 > </body> </HTML> としていますが、窓を大きくしたりすると右や下に余白が見えてかっこわるいです。どうすれば改善しますか? お願いします☆

    • ベストアンサー
    • HTML

専門家に質問してみよう