はじめまして、今回分からない点があり投稿させていただきました。
http://www.vector.co.jp/soft/win95/util/se079072 …
上記ののバイナリエディタの機能の一つにある
『指定した文字列』を『任意の文字列』に置換する方法を教えていただけませんか?
私が出来てる部分は、ファイルを16進数で読み込み置換するまです。
これをファイルとして出力する方法がわかりません。
ご教授お願いします。
No.3
- 回答日時:
>音声ファイルを16進数でとりこみ、元ファイルの形式に戻すには、どのようにもどしたらよいのですか?
戻すも何も、読み込んだバイト配列の内容を自分で変更して書き込むだけですけど。
>これも文字コードの設定で可能なのでしょうか?
というか、文字コードについて勉強しましょうね。
文字コードをちゃんと理解しないでバイナリファイルを文字にして表示なんてのは危険すぎます。
半角英数だけで、Unicode以外の文字コードにするんでしたらSJISもJISもEUCもどれも一緒です。
まだまだ理解できません。
VB始めたばかりというかプログラミングを始めたばかりなのですみません。
もう少し基礎を勉強してから頑張ります。
色々教えて頂きありがとうございます。
最後に質問なんですが、このプログラムは、上、中、下
で言うとどれくらいのレベルですか?
No.2
- 回答日時:
>こんなソースで書いたのですが、これは全然違いますか?
ファイルの入出力は、こんな感じでいいかと思いますけど、読み込んだ内容をどこも置換しないで保存してもしょうがないですよね(^^;;;
#あとは、コメントが怪しいですが(^^;;
で、メインの置換の部分ですが、
BitConverter.ToString()で文字列にした結果との比較はやめた方がいいかと。ずれる可能性大です。
なので、「指定した文字列」の方もバイト配列に変換してください。
http://dobon.net/vb/dotnet/string/getencoding.html
ポイントとして、.NETでは文字列はUnicodeとして扱われます。なので、『指定した文字列』というのも、どの文字コードで指定するかということが重要になります。
#といってもEncoding.GetEncoding()のパラメータかえるだけですけどね。
比較は、配列なんですからループで出来ますよね。
この回答への補足
返事遅れてすみません。
音声ファイルを16進数でとりこみ、元ファイルの形式に戻すには、どのようにもどしたらよいのですか?
置換方法は例えば『0100FFDO』を『00235121』に書き直して元の音声ファイルとして出力したいのです。
これも文字コードの設定で可能なのでしょうか?
また可能ならどの文字コードで出力したらよいのでしょうか?
説明下手くそですみません。
No.1
- 回答日時:
>『指定した文字列』を『任意の文字列』に置換する方法を教えていただけませんか?
1.『指定した文字列』1文字ずつ切り出し、文字コードにしてをByte型配列に格納。
2.読み込んだファイルの内容と、1で作成した配列の先頭の値を比較し、同じだったら配列の残りの部分も同じかどうか比較する。違ったら読み込んだファイルの比較開始位置をずらす。
3.置換対象個所が見つかったら、『任意の文字列』を1.と同様に1文字ずつ切り出し、文字コードにしてをByte型配列に格納。
>私が出来てる部分は、ファイルを16進数で読み込み置換するまです。
あとは出来ますよね。
この回答への補足
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim fsIn As New System.IO.FileStream(fileName, _
System.IO.FileMode.Open, System.IO.FileAccess.Read)
'すべて読み込む
Dim bytesIn(fsIn.Length - 1) As Byte
fsIn.Read(bytesIn, 0, bytesIn.Length)
'閉じる
fsIn.Close()
'ファイルを書き出す
Dim fsOut As New System.IO.FileStream(fileName, _
System.IO.FileMode.Create, System.IO.FileAccess.Write)
'復号化されたデータを書き出す
fsOut.Write(bytesIn, 0, bytesIn.Length)
'閉じる
fsOut.Close()
'16進数で格納
data1 = BitConverter.ToString(bytesIn).Replace("-", "")
'リッチテキストに出力
RichTextBox1.Text = data1
Dim kensaku, kekka As String
kensaku = RichTextBox1.Text
kekka = kensaku.Replace(TextBox2.Text, "00007D0000007D00")
End Sub
こんなソースで書いたのですが、これは全然違いますか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- Visual Basic(VBA) 入力ボックスが繰り返しポップアップして止まらない。 下記コードでファイル名の変更をしたいのですが、変 1 2022/09/08 11:27
- Visual Basic(VBA) ファイル名の右側を変更したい ファイル名:「1001日別売上」の左側へ「2022」を追加し、「202 6 2022/10/14 10:03
- フリーソフト フォルダ、ファイル名の一括変換について 3 2023/03/16 09:23
- Visual Basic(VBA) EXCEL VBA 単語置き換え について質問です ブック名 ぶぶぶ シート名 ししし セル V3〜 3 2023/03/08 01:41
- その他(プログラミング・Web制作) プログラミング python pandas 固定長データの出力 2 2022/08/16 11:22
- Visual Basic(VBA) Excel VBA 教えてください。 VBA初心者です。 詳しい方がいましたら教えてください。 下記 3 2023/04/25 11:22
- Word(ワード) ワードフォント 一括置換の方法 4 2022/12/31 00:27
- その他(IT・Webサービス) 少し複雑なテキスト置換がしたいです。 2 2022/10/13 14:42
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/06 13:01
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでテキストファイルを複数開...
-
日本語混じりのファイルをラン...
-
Cで2次元配列にCSVファイルを...
-
ファイル内の(&H0A)を(&H0D0A)...
-
ファイル入力のデータを構造体...
-
Cocoa+Objective-Cで、CSVファ...
-
DXFファイルをVBで取り込み、図...
-
グレースケール画像の画素値を得る
-
ファイルのアクセス回数について
-
バッチファイル 二つ上のディ...
-
エクセルのプロパティーでセキ...
-
エクセルvbaでdocuworksprinter...
-
エクセルVBAで一つ上の階層...
-
VBA 最新のフォルダ取得
-
Windows10でコマンドプロンプト...
-
VBA フォルダ名に特定の文字を...
-
エクセルVBAで開いているファイ...
-
カンマ区切りのCSVファイルから...
-
Wordで差込印刷した後に別々の...
-
初心者powershellのPS1ファイル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バイト型のデータを16進表記で...
-
VBAでテキストファイルを複数開...
-
RGBのバイナリデータをCImageに...
-
VBAでテキストファイルの改行を...
-
DXFファイルをVBで取り込み、図...
-
[VBS] 16進数でバイナリファイ...
-
ファイルをメモリに出力する方法
-
ファイル内の(&H0A)を(&H0D0A)...
-
テキストファイルを後ろから読...
-
Cで2次元配列にCSVファイルを...
-
ファイル入力のデータを構造体...
-
Excel VBAで画像解析
-
VBScriptの配列は、要素数を指...
-
fread関数の使い方がわかりませ...
-
ファイルからビット単位での読...
-
awk getlineをもう一度ファイル...
-
バイナリファイルでOutOfMemory...
-
VBSにてCSV読み込みし比較
-
バイナリファイルの一部分をカ...
-
日本語混じりのファイルをラン...
おすすめ情報