- ベストアンサー
外部パラメータを使用したファイルの作成・書き込み
テキストファイルに以下の内容が書かれています。 ファイルパス:/aaa/bbb/ccc ファイル名:ファイル.txt これを読み込んで $filepath = /aaa/bbb/ccc $filename = ファイル.txt となっています。 この時(「ファイル.txt」は存在しません。)、以下のような処理を行うと「/aaa/bbb/ccc」ではなく、「/aaa/bbb」に「ファイル.txt」が作成されるのですが、なぜでしょうか?? open(TXT, ">> $filepath/$filename"); flock(TXT, 2); print TXT $header; flock(TXT, 8); close(TXT); この処理の前に$filepathの値を調べましたが、確かに「/aaa/bbb/ccc」となっています。 何か注意する点や、ここが問題では?と言うようなことがあれば教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (2)
- spinach-chicken
- ベストアンサー率57% (24/42)
- spinach-chicken
- ベストアンサー率57% (24/42)
関連するQ&A
- CSVファイルの「”」について
VB6でCSVファイルを読み込みたいのですが、 以下のような項目だと、1項目として読み込むことができません。 例) AAA,"BBB,CCC,"" """,DDD "BBB,CCC,"" """ を1項目として読み込みたいのですが ダブルコーテーションの括りの中に、更にダブルコーテーションがあると うまくいかないみたいです。 何か方法がありますでしょうか? Open DownLoadFile For Input As #1 Len = 32000 Input #1, rec Do Until EOF(1) 処理1 Loop close #1
- ベストアンサー
- Visual Basic
- system関数と引数について
環境 Windows XP VC++6.0, Win32consoleです。 以下のファイルを連続処理させたいのですが、 aaa1.txt、aaa2.txt、aaa3.txt、~~~~aaa.15.txt bbb1.txt、bbb2.txt、bbb3.txt、~~~~bbb.15.txt ccc1.txt、ccc2.txt、ccc3.txt、~~~~ccc.15.txt その際、perlで処理させたいと考えております。 VC++ から system関数を用いてperlファイルを動かそうとしていますが、 たとえば、この時 aaa や bbb や ccc を引数として渡せるのでしょうか?
- ベストアンサー
- C・C++・C#
- Perlでのファイル一括読み込み
Perlにてファイルの一括読み込みを以下記述で実施しております。 実行環境はAIXです。 ------------------------------- #!/usr/bin/perl open(FH,"/tmp/filename1.txt"); @aaa=<FH>; close(FH); print "@aaa\n"; ------------------------------- 上記内容をWindows XPにて実行した場合、何も表示されません。 print文が動いていないのか、ファイルの読み込みができていないのか不明です。 ファイルのパスは以下のように変更しております。 ------------------------------- open(FH,"C:\filename1.txt"); @aaa=<FH>; close(FH); print "@aaa\n"; ------------------------------- Windowsにて動作するようにはどのようにすれば宜しいのでしょうか? 初歩的な質問かもしれませんが、宜しくお願い致します。
- ベストアンサー
- Perl
- ログファイルへの書き込みがうまくいきません
------------------------------------------ open(LOG,"+<$filename") || die "Error!\n"; @logs=<LOG>; flock(LOG,2); unshift(@logs,"$array[0],$array[1],$array[2],$array[3],$array[4]\n"); print LOG @logs; flock(LOG,8); close(LOG); ------------------------------------------ この$array[0]~$array[4]にはそれぞれ、「<option value="1">1</option>」の様な、プルダウンメニューの「1~10」までの数字が入っています。 この数字を$filenameへ書き込みたいのですが、中々うまくいかずに困っています。 ちなみに、一応書き込めるには書き込めるのですが、$filenameを開くと、 ------------------------ 1,1,1,1,1 6,4,1,9,6 1,1,1,1,1 9,1,2,4,4 1,1,1,1,1 3,0,1,9,5 1,1,1,1,1 ------------------------ このような形になってしまいます。何がいけないのでしょうか? よろしくお願いします。
- ベストアンサー
- Perl
- ファイルから検索条件を読み込んでGREPを実行したい
INPUTファイルを以下のように作成します。 >input.txt aaa bbb ccc ・ ・ ・ 特定のディレクトリの複数ファイルに対して grepを順にaaa,bbb,ccc・・・ というようにinput.txtから読み込んで実行し、結果をそれぞれaaa.txt,bbb.txt,ccc.txt・・・ へ出力したいのですが、方法がわからなくて困っています。 どなたかご教授お願いいたします。
- ベストアンサー
- Perl
- CSVに外部テキストファイルを列として追加する方法
こんにちは。 CSVファイル(base.csv)の先頭列に、別のテキストファイル(add.txt)の中身を新規の列として挿入したいと考えているのですが、よい方法がわかりません。。。 どうのような方法を使えば対応することができるでしょうか? どうぞよろしくお願いいたします。 ■CSVファイル(master.csv) title,developer_name,seller_name,primary_genre_name,application_url AAA,BBB,CCC,DDD,EEE AAA,BBB,CCC,DDD,EEE AAA,BBB,CCC,DDD,EEE AAA,BBB,CCC,DDD,EEE ■テキストファイル(add.txt) id 000 111 222 333 ↓ ■目標としたファイル(master.csv) id,title,developer_name,seller_name,primary_genre_name,application_url 000,AAA,BBB,CCC,DDD,EEE 111,AAA,BBB,CCC,DDD,EEE 222,AAA,BBB,CCC,DDD,EEE 333,AAA,BBB,CCC,DDD,EEE
- 締切済み
- Ruby
- ファイル分割2
前回ファイル分割について質問させていただいた者です。 ファイル名 あいうえお.txt 内容 <A>AAA <B>BBB <C>CCC <D>DDD <E>EEE <F>FFF というファイルを ファイル名 あいうえお1.csv A,B AAA,BBB ファイル名 あいうえお2.csv C,D CCC,DDD ファイル名 あいうえお3.csv E,F EEE,FFF という感じで変換させたいと思っております。 A,B,C,D,E,F AAA,BBB,CCC,DDD,EEE,FFF に変換するプログラムは my $mae = my $filename = shift @ARGV; my $ato = "$filename.csv"; open(IN,"$mae") || die "Can't open!"; my @datas = <IN>; close (IN); my (@ichi,@ni); foreach (@datas){ if ($_ =~ /^<(.*)>(.*)$/){ push(@ichi,$1); push(@ni,$2); } } my $ichi = join(",",@ichi); my $ni = join(",",@ni); open (IN,">$ato") || die "Can't open!"; eval 'flock(IN,2);'; seek (IN,0,0); print IN ("$ichi\n"); print IN ("$ni\n"); eval 'flock(IN,8);'; close (IN); exit; こんな感じで作成したのですが、前回教えていただいた3つファイルに分割するプログラムをどのように追加するか わかりません。 ほんとにあほみたいなことを聞いているとは思いますが、 教えていただけないでしょうか? よろしくお願いします。
- ベストアンサー
- Perl
- ファイル書き込み操作について
C言語でファイル書き込みを行う以下のプログラムを改造したいと思っています。 #include <stdio.h> #include <stdlib.h> int main() { char filename[10] = "output"; char strs[][10] = { "1.aaa\n" ,"2.\n" ,"3.\n" } FILE* fp; int i; int length; fp = fopen(filename , "w"); if (fp == NULL) { printf("cannot open file\n"); exit (1); } length = sizeof(strs)/10; for( i = 0; i < length ; i++ ) { fputs( strs[i], fp ); } fclose(fp); return 0; } この場合、outputの内容は、 1.aaa 2. 3. となりますが、 2行目にはscanf等を使いプロンプトから読み込んだbbbという文字列、 3行目にはtxtファイルから読み込んだcccという文字列を書き込むというような仕様にしたいと思っています。 その結果outputは、 1.aaa 2.bbb 3.ccc となるようにしたいです。 サンプルを改良してこのような仕様を満たすプログラムができますでしょうか?回答よろしくお願いします。
- 締切済み
- C・C++・C#
- 変数を使用したファイルのオープン
$a=ccc として、 open(IN,"aaa/bbb/$a.csv"); っていうのは、うまく行くんですけど、 $a=aaa/bbb/ccc open(IN,"$a.csv"); っというのが、うまくいきません、なにかいい方法ありませんでしょうか、 それとも、こんな書き方はダメなのでしょか?
- ベストアンサー
- Perl
- dosでサイズを比較して異なるファイルだけコピー
dosで全フォルダ内のファイルサイズを比較して異なるファイルだけコピーしたい 次のようなファイル構成で AAAフィルダ BBBフォルダ cccフォルダ cccフォルダ abc.txt abc.txt def.jpg def.jpg dddフォルダ dddフォルダ ghi.txt ghi.txt jkl.jpg jkl.jpg AAA\ccc\abc.txtとBBB\ccc\abc.txt AAA\ccc\def.jpgとBBB\ccc\def.jpg AAA\ddd\ghi.txtとBBB\ddd\ghi.txt AAA\ddd\jkl.jpgとBBB\ddd\jkl.jpg 拡張子は問わずそれぞれに対するファイルのファイルサイズを比較して 大きくても小さくても異なるファイルだけbbbフォルダ内に上書きコピー したくご教授をお願いします
- 締切済み
- その他(プログラミング・開発)
- MFC-J5820DNを使用しております。別のネットワーク上のデバイスからファイルを選択し、印刷することはできますか?
- MFC-J5820DNにはEメールプリント機能はありませんが、別の方法でファイルを印刷することは可能ですか?
- ブラザー製品であるMFC-J5820DNではEメールプリント機能はサポートされていません。代わりの印刷方法について教えてください。
お礼
ファイルパスの最後に/を付けたらできました。 また新規の変数を作成してもできました♪ ありがとうございますm(__)m