キーワード3個の場合(100個でも可能にしたい)
a.txtの文章をb.txtの指定した場所に挿入したいです。
------------------------------------------------------------------
a.txt
タイトルタイトルタイトル
ダイヤモンド
パール
裏技
------------------------------------------------------------------
b.txt
<TITLE>【】</TITLE>
<font color="000000">
<h1>【】</h1>
<h2>ポケモンの【】の一覧</h2>
<strong>ポケモン</strong>の<strong>【】</strong>
<A href=""></A><br>
<hr>
<h2>ポケモンの【】の一覧</h2>
<strong>ポケモン</strong>の<strong>【】</strong>
<A href=""></A><br>
<hr>
<h2>ポケモンの【】の一覧</h2>
<strong>ポケモン</strong>の<strong>【】</strong>
<A href=""></A><br>
-----------------------------------------------------------------------
できあがってほしい文章
<TITLE>タイトルタイトルタイトル</TITLE>
<font color="000000">
<h1>タイトルタイトルタイトル/h1>
<h2>ポケモンの【ダイヤモンド】サイト</h2>
<strong>ポケモン</strong>の<strong>【ダイヤモンド】</strong>
<A href=""></A><br>
<hr>
<h2>ポケモンの【パール】サイト</h2>
<strong>ポケモン</strong>の<strong>【パール】</strong>
<A href=""></A><br>
<hr>
<h2>ポケモンの【裏技】の一覧</h2>
<strong>ポケモン</strong>の<strong>【裏技】</strong>
<A href=""></A><br>
<hr>
----------------------------------------------------------------
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
★追記。
・http://www9.plala.or.jp/sgwr-t/index.html→『初心者のためのポイント学習C言語』
・http://homepage3.nifty.com/mmgames/c_guide/index …→『苦しんで覚えるC言語』
上記の2つで C 言語の学習が出来ると思います。
・http://www9.plala.or.jp/sgwr-t/c/sec17.html→『第17章 ファイル入出力』
このページを読めばファイルの入出力の方法が分かります。
・ちょっとしたツールは探すよりも作った方が早いです。
今回の質問をきっかけに C 言語を学んでみてはどうでしょうか。
前回の回答は『完成版』ですのでコピペすれば動きます。
今後のツール作成の基本として下さい。
・以上。おわり。→頑張って下さい。あなたは『初心者』ではなく『入門者』ですよ。
参考URL:http://www9.plala.or.jp/sgwr-t/c/sec17.html
No.3
- 回答日時:
★初心者ですか。
・初心者でもファイルのオープンやクローズなどは、知っていて欲しいですね。
そんなに難しくはないと思いますが…。
とりあえず、program.c の完成版を紹介します。
#include <stdio.h>
#include <string.h>
/* 1行単位で読み込む */
char *getsline( FILE *fa )
{
static char buff[ 256 ];
char *find;
int ch;
while ( (ch = fgetc(fa)) != EOF ){
if ( ch != '\n' ){
ungetc( ch, fa );
fgets( buff, sizeof(buff), fa );
if ( (find = strchr(buff,'\n')) != NULL ){
*find = '\0';
}
return( buff );
}
}
return( "" );
}
/* コンバーター処理 */
int convertor( FILE *fa, FILE *fb, FILE *fo )
{
char buff[ 256 ];
char *find;
while ( fgets(buff,sizeof(buff),fb) != NULL ){
if ( (find = strstr(buff,"【】")) == NULL ){
fputs( buff, fo );
}
else{
fprintf( fo, "%.*s", (int)(find - buff), buff );
fputs( "【", fo );
fputs( getsline(fa), fo );
fputs( "】", fo );
fputs( find + 4, fo );
}
}
return( 1 );
}
/* メイン関数 */
int main( int argc, char *argv[] )
{
FILE *fa;
FILE *fb;
FILE *fo;
int ret = 0;
if ( argc != 4 ){
printf( "USAGE: program.exe a.txt b.txt out.html\n\n" );
printf( "a.txt......文章ファイル(txt)\n" );
printf( "b.txt......テンプレート(txt)\n" );
printf( "out.html...作成ファイル(html)\n" );
return( 1 );
}
if ( (fa = fopen(argv[1],"r")) != NULL ){
if ( (fb = fopen(argv[2],"r")) != NULL ){
if ( (fo = fopen(argv[3],"w")) != NULL ){
ret = convertor( fa, fb, fo );
fclose( fo );
}
fclose( fb );
}
fclose( fa );
}
if ( ret ){
printf( "正常に %s ファイルを作成しました。\n", argv[3] );
}
else{
printf( "どれかのファイルがオープンできませんでした。\n" );
}
return( 0 );
}
『a.txt』
------------------------
タイトルタイトルタイトル
タイトルタイトルタイトル
ダイヤモンド
ダイヤモンド
パール
パール
裏技
裏技
------------------------
『b.txt』
yamadesu さんの b.txt がそのまま使えます。
使い方:
>PROGRAM.EXE a.txt b.txt out.html
※a.txt と b.txt より、out.html が作成されます。
以上。
No.2
- 回答日時:
「テンプレート cgi」とかで検索すれば、それっぽいのがいろいろあると思います。
perlのHTML::Templateとか
PHPならsmartyとか、(php単体でもいいですが)
pythonの、Templateクラスとか。
c++なら、最近google ctemplateなるものがでてますね。(使ったことないけど)
http://code.google.com/p/google-ctemplate/
他にもいろいろあると思いますが。
No.1
- 回答日時:
★ここは『プログラミング』のカテゴリですが…。
・ツールを C/C++ 言語で作成したいという質問でしょうか?
もしそうならば『b.txt』を読み込み『【】』の文字列を strstr 関数で検索します。
その後、a.txt も読み込み順番に『【】』の間に挿入していけば良いでしょう。
・下にそのサンプルを載せます。
サンプル:
char a_buff[ 256 ];
char b_buff[ 256 ];
char *find;
FILE *fa; ←a.txtのファイルポインタ
FILE *fb; ←b.txtのファイルポインタ
FILE *fo; ←出力用のファイルポインタ
ファイルのオープン処理
:
while ( fgets(b_buff,sizeof(b_buff),fb) != NULL ){
if ( (find = strstr(b_buff,"【】")) == NULL ){
fputs( b_buff, fo );
}
else{
fprintf( fo, "%.*s", (int)(find - b_buff), b_buff );
fputs( "【", fo );
fputs( fgets(a_buff,sizeof(b_buff),fa), fo ); ←※
fputs( "】", fo );
fputs( find, fo );
}
}
:
ファイルのクローズ処理
解説:
・最初に a.txt、b.txt を読み込みでオープンします。そして、out.html などのファイルに
書き込みでオープンします。つまり、a.txt と b.txt から out.html を作成するのです。
・b.txt を行単位で読み込み『【】』のカッコが見つからなければ、そのまま出力します。
もし、見つかったらば a.txt から1行単位で読み込み、その文字列を『【】』ではさみ
出力します。これが上記のサンプルの else ブロックの処理です。
※印の部分は分かりやすくするために戻り値をチェックしていません。
正しくは fgets 関数の戻り値を調べて下さい。また、a.txt は空行が内容に記述されている事が
前提です。空行も含みたい場合は、※印の部分で空行カットの処理も含めます。→サブ関数を作る。
最後に:
・今回の処理はご自分でツールを作る以外は見つからないと思います。
タイトルが『ツールを探しています』となっていますが、フリーソフトを探しているのならば
そちらのカテゴリで質問して下さい。→http://oshiete1.goo.ne.jp/c238.html
・上記のCソースで簡単なツールが作れます。
キーワードが3個でも、100個でも可能です。
注意点としては a.txt の単語数と b.txt の『【】』の個数を合わせることです。
・以上。参考に。
参考URL:http://www9.plala.or.jp/sgwr-t/lib/strstr.html
この回答への補足
ファイルオープンやクローズなど
初心者の私には難しいので、
できればprogram.cの完成版を書いてくれる方
是非お願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C#でログファイルにファイルパ...
-
c言語
-
大量のデータを読み込んで表示...
-
gccを行ってもexeファイルが生...
-
UART通信の取説で,left floati...
-
PC画面を録画するプログラムでd...
-
C言語について。
-
Windows Formアプリからコンソ...
-
プログラムを斜めに並べる
-
今ってプログラミング言語は何...
-
コンソールアプリを作成するの...
-
【C言語】全角文字の配列を、全...
-
C# DatagridviewにExcelシート...
-
逆コンパイルと逆アセンブルの...
-
プログラムの実行時に'<'でリダ...
-
バッチファイルで以下のような...
-
インクリメント演算子のみを用...
-
mallocについて
-
システムエンジニアの適正について
-
どちのほうがすきですか?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
どうして+3
-
プログラミング言語についてc++...
-
今ってプログラミング言語は何...
-
2つほどお聞きしたいことがあり...
-
次の記述について
-
パソコン
-
バッチファイルで以下のような...
-
大量のデータを読み込んで表示...
-
c言語
-
Windows Formアプリからコンソ...
-
gccを行ってもexeファイルが生...
-
VisualStudio2022でC言語プログ...
-
UART通信の取説で,left floati...
-
C#でTreeViewのCheckBoxのサイ...
-
10進数からN進数に変換するプロ...
-
Python、プログラミングについ...
-
[C言語]fputsとfprintfの違い
-
0 == False はいいけど
-
VisualStudioで、コードを印刷...
-
逆コンパイルと逆アセンブルの...
おすすめ情報