• 締切済み

ファイルにロック

Cで自分で作ったtest.exeという 名前のプログラムがありまして (どんなプログラムかは事情が あってここに書くことは 出来ないのですが…) 起動するとdata.txtとin.txtの 読み込みをしてから処理を するように作ったのですが この時読み込むdata.txtと in.txtを自作したtest.exe以外で 開いても中身がわからない (暗号化etc…)もしくは開けない ようにする方法はありますか? data.txtの中身は全て日本語で in.txtの中身は全て半角英語です どちらも7000行ほど あります 回答よろしくおねがいします

みんなの回答

  • violet430
  • ベストアンサー率36% (27472/75001)
回答No.1
sikasin
質問者

お礼

回答ありがとうございます 参考URLにて紹介されている暗号化ソフトで 暗号化すると、text.exeで、暗号化した data.txtとin.txtを読み込んでも暗号化されたまま 読み込んでしまいます 他に方法はないでしょうか? よろしくおねがいします

関連するQ&A

  • ファイルからの読みこみについて

    下記のようなdata.txtがあります。 2005/12/01,0:44:55,2.2 2005/12/01,0:45:55,7.8 2005/12/01,0:46:55,4.8 2005/12/01,0:47:55,5.5 いまこのようなプログラムがあります。(一部) $date=[]; $temp=[]; open(DATA,"data.txt"); while(<DATA>){ #一行ずつ読む if(/$name/){print "$_<BR>";} #$nameの中身を発見→出力 @field = split(/,/,); push @$date, $field[1]; push @$temp, $field[2]; } @data=($date, $temp); です。 簡単にプログラムの説明をしますとdata.txtで$name($name=2005/12/01)という文字を一行単位で検索していきます(今はすべてが当てはまります)この検索してヒットした一行の,区切りの一番右のデータを並べたものを$tempとし、,区切りの真ん中のデータを並べたものを$dateとしています。このプログラムですと$temp は [2.2,7.8,4.8,5.5]になり$dateは["0:45:55","0:45:55","0:45:55","0:45:55"]となるはずですがこのプログラムを実行すると検索結果は表示されるのですがプログラムの最後の行の@data=・・・というところが検索結果でなくdata.txtのすべてになってしまいます。どうやったら正常にもどりますか??お願いします。

    • ベストアンサー
    • CGI
  • ファイルの3行目までを出力したい

    Perl初心者です。 test.txtというファイルがあって、その中の1行目から3行目までを 出力したい場合はどうしたらいいでしょうか? open(FILE,"test.txt") || die "Open Error.\n"; @data = <FILE>; close(FILE); foreach (@data) { print $_; } これだと、ファイルの中身が全て出力されてしまいます。

    • ベストアンサー
    • Perl
  • BATファイルでプログラムファイルの書き換え

    ----------------------------------------------------------------- @echo off set TEST="C:\Program Files\TEST\" echo 書き換え処理を開始します。 for /f %%A in ('dir /b /s %TEST%test.txt') do copy NEW\test.txt "%%A" echo 全ての処理は完了しました。 echo 終了するには何かキーを押してください。 pause > nul ----------------------------------------------------------------- Program Files\TEST\内のtest.txtを検索して、それらすべてをNEW\test.txtで上書きするというBATファイルを作りたいのですが、上記のコードではちゃんと動作しません。 Program Files以外のフォルダを指定すると正しく動作してくれるので、おそらくProgram Filesの半角スペースがエラーの原因だと考えました。 このコードもいろいろなサイトとかを見て、自分なりに考えて作ってみました。 が、どうやったらいいのか考えても全然わからなかったので、どなたか教えていただけたら嬉しいです^^ よろしくお願いします!

  • バッチファイルで2行にわたるコマンドを入力したいのですが

    バッチファイルで複数行にわたるコマンドを打ちたいのですが、方法がわからなくて困っています。 for /f "tokens=1,2,3 delims=/ " %%a in ('date /t') do ( set hinichi=%%a%%b ) "C:\Program Files\Lhaca\Lhaca.exe" "test%hinichi%01.txt" "test%hinichi%02.txt" ・・・・・・・ と31個のファイルを圧縮するバッチです。 体裁の問題ですが、 for /f "tokens=1,2,3 delims=/ " %%a in ('date /t') do ( set hinichi=%%a%%b ) "C:\Program Files\Lhaca\Lhaca.exe" ? "test%hinichi%01.txt" ? "test%hinichi%02.txt" ・・・ としたいのですが各行のつなぎの記号?がわかりません。 ご存知の方、よろしくお願いいたします。

  • 【DOSコマンド】for の デリミタにダブルクォーテーションを使うには

    下記のような1行だけ書かれたテキストファイルがあり、その中からダブルクォーテーションで囲まれた部分を抜き出そうとしています。 --【abc.txt】----------------------------------------------------------- Command Line: "C:\Program Files\test\test.exe" ---ここまで------------------------------------------------------------- (C:\Program Files\test\test.exe を抜き出したい) DOSコマンドのfor文を使って抜き出そうとしたのですがダブルクォーテーションをどうやってデリミタに指定したらいいのかわかりません。   for /f 'delims=" tokens=2' %i in (test.txt) do @echo %i  とか   for /f "delims="" tokens=2" %i in (test.txt) do @echo %i など いろいろやってみたのですがエラーが出ました。 試しにテキストファイルのダブルクォーテーションを”+”に置き換えて試したところうまく出来たので、デリミタの指定の仕方だけだと思うのですが、どうしてもわかりません。 Command Line: +C:\Program Files\test\test.exe+   に対して for /f "delims=+ tokens=2" %i in (test.txt) do @echo %i はうまく出来ました。 どなたかご享受願えませんでしょうか。 よろしくお願いします。

  • CSVファイルを読み込み、ファイル名を変更。

    CSVファイルを読み込み、ファイル名を変更。 使用言語はperlです。perlは初心者です。 アルゴリズムが、 CSVファイルを読み込み→2次元配列に格納→ファイル名変更 という流れになっているプログラムを作成中です。 CSVファイルの中身は あ.txt , a.txt い.txt , b.txt う.txt , c.txt です。 CSVファイルを読み込み2次元配列に格納するプログラムは以下のようにしました。 ----------------------------------- $i= 0; open IN, "sample.csv"; while (<IN>) { my @data = (); @data = split (/,/); for (0..@data) {$jdata[$i][$_] = "$data[$_]";} $i++; } close IN; ---------------------------------------- 「あ.txt」を「a.txt」に変更しようとして、この中に rename $jdata[0][0] , $jdata[0][1] ; と書いてみましたが、変換されません。 どう書けばよいのでしょうか。よろしくお願いします。

    • ベストアンサー
    • Perl
  • ファイルを分割する。

    ひとつのファイルを3つのファイルに分けて保存するプログラムを作りたいと思います。 ファイル名 test.txt 内容 あああ いいい ううう かかか ききき くくく さささ ししし すすす というファイルを指定した行数ごとに違う名前で保存できるようにしたいのです。 SEEKとかでは指定した行では分けれないし、foreachではすべての行になってしまいます。 ファイル名 1.txt あああ いいい ううう ファイル名 2.txt かかか ききき くくく という感じで分けたいと思います。 よろしくお願いします。

    • ベストアンサー
    • Perl
  • C言語 ファイル入出力について

    test.txtというテキストファイルに入力されている文字を読み込んでtest1.txtに7文字になったなら改行して2行目に書き込み、また2行目が7文字以上になったら3行目に書き込むというプログラムを作りたいのですがどうもうまくいきません。色々ネットで探したりしたのですがstrlenをうまく使うのかな~ぐらいしか見当はつきません・・・。 何かよいアドバイスをお願いします!m(_ _)m 例 test.txt --------------------------------- 私の一番好きな食べ物はリンゴです。 --------------------------------- ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ test1.txt ---------------------------------- 私の一番好きな 食べ物はリンゴ です。 ----------------------------------

  • ファイル結合

    現在、テキストファイルの結合で困っています。 test1.txt test2.txt・・・・・・test*.txtのファイルがあり それぞれのファイルには縦に1列、数値が500個入っています。 test1.txtの中身(例) 0.3 0.5 0.8 0.6 0.2 0.8 それを以下のように結合したいのですがうまくいきません 0.3 0.8 0.2・・・・・・ 1.9 0.5 0.8 0.7・・・・・・ 0.1 0.8  ・ 0.6  ・ 0.2  ・ 0.8 0.5 0.4・・・・・・ 0.7 参考書のプログラムを参考に作ってみたのですが途中でずれてしまうのです そのプログラムを載せるべきかもしれませんが、大部分が参考書のままなので今のところ載せてません こんな状態では難しいとは思われるのですが、どうかアドバイスをお願いします。

  • バッチファイル 現在のフォルダ名をファイル名に置き換える

    こんにちは。超初心者なのですが教えてください。 ある複数フォルダに格納されている.txtファイルを、現在の フォルダ名を取得して、別フォルダにリネームして 格納するバッチファイルを作成したいと考えています。 for文を繰り返し使わなければいけないことはわかっているのですが、それをどう表現していいのか全然わかりません。 例えば、 データ取得元として以下のファイルがあったら C:\temp\20100101\data1.txt C:\temp\20100101\data2.txt C:\temp\20100101\data3.txt C:\temp\20100102\data1.txt C:\temp\20100102\data2.txt C:\temp\20100103\data1.txt C:\temp\20100103\data2.txt これを別フォルダに、現在のフォルダ名をファイル名にくっつけて 以下のように一つのフォルダに纏めて格納したいと思っています。 ファイルの中身はそのままコピーしたいので、どこかでcopyコマンド を使うかもしれないです。 C:\test\data1_20100101.txt C:\test\data2_20100101.txt C:\test\data3_20100101.txt C:\test\data1_20100102.txt C:\test\data2_20100102.txt C:\test\data1_20100103.txt C:\test\data2_20100103.txt 実装方法として以下までは考えましたが、これ以上は無理そうです。 rem set A=C:\temp rem set B=C:\test for %%A in (C:\temp\) do ( if not "%%A"=="" ( pushd "%%A" for /d %%B in (*) do ( if not "%%B"=="" ( pushd "%%B" for /d %%C in (*) do ( if not "%%C"=="" ( pushd "%%C" ) ) ) ) popd? ) ) 申し訳ありませんが、お助け願います。