zipファイルを開けようとクリックしたところ
テキストファイル処理の確認というのがでてきます。
変換のところですべてはいやすべていいえなどやってみてもファイルを開けることができません・・
中身はmp3なのですが、どうしたらいいのでしょうか?

ちなみに解凍にLhaplusを使っています。

A 回答 (1件)

lhacaとかeoとか別のアンアーカイバを使ってみては。


コマンドライン版unzipを-t付きで実行して、ファイルの検証をしてみると良いかも。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qテキストファイルをバイナリファイルに変換

-32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768,
-32768, 130, 120, 120, 109, 100, 100, 94, 91, 90, 89, 87, -32768, 78, 71,

と続いていくテキストファイルのデータをバイナリデータにC言語で変換したいのですが、どうすれば変換出来るのでしょうか。

Aベストアンサー

大体こんな感じですか?
おそらくtxtをbinに変換したい、変換形式は-32768→8000といった類の変換ですよね。
既にある回答は、16進データが文字列のまま出力されてしまうのでちょっと不便かもしれません。
(フォーマットが%04Xだったら桁数固定なので、それで良いかもしれませんが。)

usage:
./a.out Binary.txt Binary.bin

グローバルで宣言されているByte,Signed,LittleEndianの値をいじって変換形式を変えてみてください。

//-------------------------------------------------

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int Byte=2;
bool Signed=true;
bool LittleEndian=true;

void StrToBinary(char *Str,FILE *fp)
{
int iwt;
unsigned char wBuffer[4];
iwt=atoi(Str);
if(Byte<4 && Signed && iwt>(2<<(Byte*8-1))-1) iwt=(2<<(Byte*8-1))-1;
if(Byte<4 && Signed && iwt<-(2<<(Byte*8-1))) iwt=-(2<<(Byte*8-1));
if(Byte<4 && !Signed && iwt>(2<<(Byte*8))-1) iwt=(2<<(Byte*8))-1;
if(!Signed && iwt<0) iwt=0;
for(int j=0;j<Byte;j++)
{
if(LittleEndian)
wBuffer[j]=((unsigned char *)(&iwt))[j];
else
wBuffer[Byte-j-1]=((unsigned char *)(&iwt))[j];
}
fwrite(wBuffer,1,Byte,fp);

}

int main(int argc,char *argv[])
{
char valBuffer[64];
int i=0;
bool IsInt,IsNumber;
FILE *fp_r;
FILE *fp_w;

if(argc<=2)
{
printf("Invalid parameters.");
return 0;

}else{
fp_r=fopen(argv[1],"r");
fp_w=fopen(argv[2],"wb");
}
if(fp_r==NULL)
{
printf("Read failed. - %s",argv[1]);
return 0;
}
if(fp_w==NULL)
{
printf("Write failed. - %s",argv[2]);
fclose(fp_r);
return 0;
}
i=0;
IsInt=true;
while(!feof(fp_r))
{
valBuffer[i]=fgetc(fp_r);
IsNumber=false;
if(i==0 && valBuffer[i]=='-')
IsNumber=true;
if(IsInt && valBuffer[i]=='.')
{
IsNumber=true;
IsInt=false;
}
if(valBuffer[i]>='0' && valBuffer[i]<='9')
IsNumber=true;
if(IsNumber)
i++;
else{
if((valBuffer[0]!='-' && valBuffer[0]!='.' && i==1) || i>1)
{
valBuffer[i]=0;
StrToBinary(valBuffer,fp_w);
}
i=0;
IsInt=true;
}
}
if((valBuffer[0]!='-' && valBuffer[0]!='.' && i==1) || i>1)
{
valBuffer[i]=0;
StrToBinary(valBuffer,fp_w);
}
fclose(fp_r);
fclose(fp_w);
printf("Conversion succeed. - %s",argv[1]);
return 0;
}

大体こんな感じですか?
おそらくtxtをbinに変換したい、変換形式は-32768→8000といった類の変換ですよね。
既にある回答は、16進データが文字列のまま出力されてしまうのでちょっと不便かもしれません。
(フォーマットが%04Xだったら桁数固定なので、それで良いかもしれませんが。)

usage:
./a.out Binary.txt Binary.bin

グローバルで宣言されているByte,Signed,LittleEndianの値をいじって変換形式を変えてみてください。

//-------------------------------------------------

#include <stdio.h>
#includ...続きを読む

Qzipファイルの解凍ソフトと、解凍の仕方について

zipファイルを解凍したいのですが、
解凍をしたことがないので、解凍ソフトがわかりません。
解凍ソフトとその方法を知っている人がいましたら、
教えて下さい。

お願いします。

Aベストアンサー

>解凍ソフトとその方法を知っている人

ほぼ全員が知っていると思われます。
例によってOSが書かれていませんが、XPなら標準でzipファイルを解凍できます。
右クリックすればメニューがあります。「全て展開」だったか。
その他OSなら、Lhacaでいいと思います。
http://www.vector.co.jp/soft/win95/util/se130263.html
使い方はファイルをアイコンにドラッグ&ドロップするだけです。

Qバイナリファイルの内容を、そのままテキストファイルに出力する方法

環境:VC2005

バイナリファイルのデータが以下の通りです。
(ex):41 22 5D 0D 8A 71 05 0A

Cプログラムで、バイナリファイルのデータを読み込み、

char* test_data = (char*)"41225D0D8A71050A";

と、等価となるtest_data変数を作成したいのですが、
どのようにすれば良いのでしょうか。

Aベストアンサー

No.4の方が使っている test_data というのは、No.2の方が配列として定義したやつですよね。
だとしたら、後で 

test_data += 2

というふうに値を変更することはできません。
test_data += 2 というのは test_data = test_data + 2 同じ意味です。
コンパイル時に警告やエラーが出るかどうかはわかりませんが、C言語では配列を指すtest_dataのような変数に、後から別のアドレスを代入することはできません。(ポインタなら後から代入できます)

char buff[8];
char *test_data = buff;

とすれば test_data に後から別の値(アドレス)を代入することができます。


sprintfを使わないで質問にある処理を行うを次のようになります。(作業ディレクトリにあるtest.datというファイルを処理するとする)

int main(void) {

FILE *fp;
unsigned char buff[8]; // バイナリデータのための配列
char test_data[16]; // 文字列のための配列
char data[] = "0123456789ABCDEF"; // 変換のための16進数資料のようなもの
int count;


fp = fopen("test.data", "rb");

fread(buff, 1, 8, fp);

for(count = 0; count < 8; count++) {
test_data[count * 2] = data[buff[count] >> 4]; // 上位4ビットの値(16進数の16の位)を文字にする
test_data[count * 2 + 1] = data[buff[count] & 0x0f]; // 下位4ビットの値(16進数の1の位)を文字にする
}

return 0;

}


戻す処理

int main(void) {

char test_data[16] = "11AB849FE2CDE593";
char buff[8];
int temp[2];
int count;
int i;

for(i = 0; i < 16; i += 2) {
for(count = 0; count < 2; count++) {
if (test_data[i + count] < '9') {
temp[count] = test_data[i + count] - 'A' + 10;
} else {
temp[count] = test_data[i + count] - '0';
}
}

buff[i] = temp[0] * 16 + temp[1];

}
return 0;
}


※どちらも、例外処理はしてません。

No.4の方が使っている test_data というのは、No.2の方が配列として定義したやつですよね。
だとしたら、後で 

test_data += 2

というふうに値を変更することはできません。
test_data += 2 というのは test_data = test_data + 2 同じ意味です。
コンパイル時に警告やエラーが出るかどうかはわかりませんが、C言語では配列を指すtest_dataのような変数に、後から別のアドレスを代入することはできません。(ポインタなら後から代入できます)

char buff[8];
char *test_data = buff;

とすれ...続きを読む

Qzipファイルを解凍した時デスクトップに解凍されてしまう

あるフォルダの中にあるzipファイルを解凍すると、フォルダがデスクトップに解凍されてしまうのですが、それをzipファイルがあるフォルダと同じフォルダに解凍するようにするには、どのようにすればよいでしょうか。教えてください。

Aベストアンサー

下記のどちらで解凍していますか?
(1)XP、Vistaでは、標準でzip形式の圧縮ファイルを解凍する事が可能です。
「展開先の選択」で、自動で展開先が入力されます。
(2)解凍ソフト(フリー)で解凍する場合
解凍先は自動で入力されています。デスクトップ上のファイルを解凍する時はデスクトップ上に解凍フォルダを作成する仕組みですが、「参照」を左クリックして解凍先の変更もできます。

参考URL:http://mbsupport.dip.jp/watson/lhaz.htm#xp

Qテキストファイルの開き方について

いくつかのテキストファイル(データです)をエクセルで開いて集計作業を行ないます。その際、それぞれのテキストファイルごとに、エクセルファイルができます。一つのエクセルファイルのタブにそれぞれのテキストファイルを開くように出来ないでしょうか。よろしくお願いします。

Aベストアンサー

一例です。
(1)各シートでデータ→外部データの取り込み→データの取り込み
(2)データファイルの選択でファイルを開く
(3)後は、テキスト ファイル ウィザードに従い操作

Qzipファイルの中のファイルの名前が文字化けしていて解凍出来ない

WINRARで中を見てみたら、ファイル名が全部文字化けしていました。
解凍しようとすると、「ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。」と出るので、おそらくこのエラーはこの文字化けが原因かと思うのですが

解凍していないファイル名を変える事は出来るのでしょうか?
このエラーの回避方法は何かありませんか?

練馬というフリーソフトを使ってみたのですが、イマイチ理解できずに使いこなせません。
他の方法があればご教授お願いいたします。

Aベストアンサー

ファイルの入手経路が不明ですが、
MacのOSXで作成されたZipファイルではありませんか?

螂ウ蟄舌い繝翫・繧ケ繧ォ繝シ

みたいなファイル名になってるとか、
この場合にWindowsの禁則文字が含まれちゃってる場合にはWindowsでは解凍できません、
OSXのMacで解凍し、
圧縮しないかLHA形式で圧縮しなおしてもらって下さい(ZipではスタフィットのDropZipで作ってもらう)。

Qファイル名を出力したテキストファイルを読込みリモートファイルをGetする方法

リモートからダウンロードが必要なファイル名をテキストファイルに出力し、そのテキストファイルを順次読込み、読込まれたファイル名をローカルにダウンロード(get)したい。

テキストファイルまでは作成できているのですが、テキストファイルを読込み、そこからファイルをゲットすることができません。

どのように記述すればよいのでしょうか?
よろしくお願いします。

Aベストアンサー

#4>whileが実行できません。
カレントディレクトリが違うのかも知れません
open(FILELIST,"filelist.txt");
while(<FILELIST>){
print "$_\n";
}
close(FILELIST);
見たいなファイルを読んで表示だけするスクリプトを作成して、ファイルが読めるかどうか点検してみて下さい。

QZIPファイルの解凍について

 以前に圧縮していたファイルを解凍しようとしているのですが、エラーが出て解凍できません。形式はZIPです。状況としては、
・Windows XPなので、ファイルを右クリックして、”全てを展開”から「圧縮ファイルの展開ウィザード」で行っても、空のフォルダが生成され、結局”展開されたファイルはありません”とエラーが出て、生成されたフォルダも自動で消去されてしまいます。
・そこで、圧縮・解凍ソフトのLhazやLhacaなどを使ってみましたが、それぞれ”書庫が壊れています”とか”対応する形式ではありません”とエラーが出ます。

 謝って消去した場合にそのファイルを復元するソフトはありますが、エラーに出たとおり、本当にファイルが壊れていた場合、復元することは可能なのでしょうか?

 ちなみに、MS-DOSから"unzip ******(ファイル名)"もやってみましたが、命令が定義されていない、とメッセージが出てやはりできませんでした。

 この場合のファイルの復元と解凍の知恵を貸してください。よろしくお願いします。

Aベストアンサー

あくまでできるかもしれないという話なのですがWinRARには修復機能があります。
もし圧縮フォルダ内に複数のファイルがある場合、例えば複数の写真をひとつに圧縮した場合には壊れていないとこまでは取り出すことができたりします。

WinRAR日本語版
http://www.vector.co.jp/soft/win95/util/se100730.html

Q外部テキストファイルが読み込みについて

FLASH MX 初心者です。

swfファイルに外部のイメージファイルとテキストファイルを読み込ませる仕組みを作っています。
イメージファイルとテキストファイルは既にサーバにあります。

この状況にてPC上で生成した完成swfでは、サーバ上にあるイメージファイルとテキストファイルが表示されます(ここまでは成功です)。
しかし完成したswfファイルをサーバへアップし、完成swfファイルを読み込ませるhtmlページを公開するとテキストファイルだけが表示されません。

イメージファイルは読み込むのに、テキストファイルは読み込まないのは何が原因なのでしょうか。

環境
OS:WindowsXP
アプリケーション:FLASHI MX 7.2

よろしくお願いします。

Aベストアンサー

その,
> サーバ上にあるイメージファイルとテキストファイル
が,アップしたSWFと違うドメインにあるからではないでしょうか?

クロスドメインでも loadMovie までは大丈夫です(ただしロードするだけの機能限定)。
しかし,
loadVariables や LoadVars.load や XML.load など,
外部ドメインのテキスト情報は取得できません。

検索「Flash クロスドメイン」
http://www.google.co.jp/search?hl=ja&q=Flash+%E3%82%AF%E3%83%AD%E3%82%B9%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3&lr=

QZIPについて。10個のファイルをZIP形式の添付ファイルとして送信し

ZIPについて。10個のファイルをZIP形式の添付ファイルとして送信しても、やはり中身は10個のファイルだと思います。同じ容量のはずだと思います。でも、容量の多いものはZIPで送れと言われますが、どんなメリットがあるのでしょうか。

Aベストアンサー

少々誤解されているようにお見受けします。
ZIPというのは、「複数のファイルをひとまとめにする」という機能が主眼ではありません。主眼はあくまでも「圧縮(サイズの縮小)」機能です。
他の回答者さまがすでにご指摘ですが、jpg画像やmp3音楽など圧縮技術を使ってすでに小さいサイズになっているファイル形式のものはZIPにいれても確かにほとんどサイズが変わりません。
しかし、テキスト文書やエクセルファイル、BMP画像などなら半分以下のサイズに圧縮することもできます。
そのような場合なら10個のファイルのサイズ合計が「生のままで1000KB」だとして、これをZIPファイルにすると500KB以下にできるのです。


人気Q&Aランキング

おすすめ情報