
Visual Basic 6.0で ファイルをコピーするソフトを作っています。
ただ1行のなかに0000から0020までのコントロールコードが入っていところが所々あります。
だからその行にはLine Input では正確に読み込めません。
書き込むと違う文字になっています。
char = Input (1, #1)
char = inputB(1, #1)
でバイナリが含まれている1行だけ読み込みみたいのですが
0D 0A
すなわち CR LF
まで読み込むにはどうしたら良いのでしょうか?
この文章の意味がわかる方お願いします。

No.2
- 回答日時:
直接的な回答ではないのですが、
ファイルをコピーするのであれば、
FileCopy で可能かと思いますが、それではだめなのでしょうか?
特別に1行単位で処理しなければいけない理由があるのでしょうか?
だめです。
基本的に1行ずつ読み込みます。
ある部分では十数行読み込んで解析してある部分を別の文字列に変換して
そのまとまりを一気に書き込みます。
このような動作は何千から何万もあります。
No.1
- 回答日時:
最初の一行だけなら、このようにして読み込めます。
Private Sub Command1_Click()
Dim Fname As String
Dim iFno As Integer
Dim i As Long
Dim buf As String
Dim bufbyt() As Byte
Fname = "C:\Temp\Test1\Unknown.txt"
iFno = FreeFile()
Open Fname For Binary Access Read As #iFno
bufbyt = InputB(LOF(iFno), #iFno)
Close #iFno
For i = 0 To UBound(bufbyt) - 1
'' buf = buf & Chr(bufbyt(i)) 'バイナリなら、この行は無意味です。
If bufbyt(i) = 13 And bufbyt(i + 1) = 10 Then Exit For
Next
MsgBox i
ReDim Preserve bufbyt(i + 1)
End Sub
ありがとうございます。
1.
良くわかりませんが最初の一行を読み込んでいるだけのようですが
書き込みは Print #oFno, bufbyt
でいいのですか?
2.
バイナリーの入っていない1行の文字列をD$にコピーできますか?
D$=buf
3.
読み込むファイルは何千行もあるのですが
バイナリーのある行は予測できるのですが
その場合はLine Input D$
でなくてどのようにしたらいいのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
printfだと出力されるのにfprin...
-
テキストファイルに改行コード...
-
BitBltについて。
-
Acccess レポートをグループ別...
-
Accessでのレポート印刷待機方法
-
【ExcelVBA】UTF-8(BOM無)でC...
-
コマンド(例えばls)の出力結果...
-
拡張子.vsdをイラストレーター...
-
Wordマクロで指定したフォルダ...
-
フォルダにあるPDF情報の抽出(VBA)
-
pcap形式データをテキストへ抽出
-
OCRで起こしたテキスト文字をCS...
-
リダイレクトとパイプについて...
-
pLaTeX の EPSファイル読み込み...
-
ワードからPDF変換でグラフが表...
-
Paiza Cloudです。 どうやれば...
-
C++ BuilderでPDF出力
-
ファイル出力の場所を指定
-
MS-Word で作成した表をLatexに...
-
C言語初心者の質問失礼します。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンド(例えばls)の出力結果...
-
Acccess レポートをグループ別...
-
シェルコマンドの 2>&1 とはど...
-
VC++でUTF-8のファイルを出力し...
-
AccessVBA複数レポート条件毎に...
-
テキストファイルに改行コード...
-
【ExcelVBA】UTF-8(BOM無)でC...
-
大量のHTMLデータのテキスト、...
-
Wordマクロで指定したフォルダ...
-
フォルダにあるPDF情報の抽出(VBA)
-
ファイル出力の場所を指定
-
ファイルの文字コードをUTF-8に...
-
二次元配列をクリップボードに...
-
拡張子.vsdをイラストレーター...
-
ファイル形式またはファイル拡...
-
外国語とCSVについて
-
C++/CLIにて、System.String^型...
-
CreateProcess関数と実行後の戻...
-
c言語の質問です。 ランダムに4...
-
C++ fprintf_sの使い方がわからん
おすすめ情報
>UTF-8ファイルを読んだ時点で文字化け→文字化けのままファイルに書き込み、となっていると思われます。
確かにその通りでした。
http://homepage1.nifty.com/cadconv/kaiseki.xls
正確にアップロードできないのです。理由はわかりません。
\W0.781;\Q+8.00;\A1;2
が
\W0.781;\Q+8.00;\A1;・・
になっていました。
すなわち
5C 57 30 2E 38 33 33 3B 5C 41 31 3B EF BC B4 EF BC 8E EF BC AB 0D 0A
が
5C 57 30 2E 38 33 33 3B 5C 41 31 3B 81 45 B4 81 45 8E EF BC AB 0D 0A
になっていました。
実際は漢字コードは新たに作るファイルにそっくりそのままコピーできればいいんです。
内容がどうでも構わない。
変換したいことは
1.ファイルの中のある範囲内で以下の文字を変換したい。
__6
の後の1行の文字列に従って
__8
の後の1行の文字列が変換できればいいのです。
2.その他の文字列は正確に1行1行正確にコピーできれば良い。
以上
_は実際は半角スペース 0x20です。