DOSの改行コードを認識するには?


syou  2002-07-15 23:46:46  No: 75847  IP: [192.*.*.*]

Line inputではDOSの改行コードは認識できないみたいなので、他の方法で認識する方法ってありますか?
やりたいことは、単純にファイルを一行単位で読み出してxlsファイルに書き込む操作だけです。
Line inputだと、全行を一行と認識してしまうためうまく貼り付けれません。どうかよろしくお願いいたします。

編集 削除
Say  2002-07-16 09:06:41  No: 75848  IP: [192.*.*.*]

MS Windowsにおける改行コードはvbCrLf(&H0D,&H0A)で、
MS DOS時代から変更されていません。
とりあえずバイナリダンプして
改行コードに何が用いられているか
調べてみては」どうですか?

編集 削除
syou  2002-07-16 23:53:06  No: 75849  IP: [192.*.*.*]

確かに0D0Aでした。で、VBで普通のテキストをバイナリに変換して改行コードがあるかどうかをチェックし、その改行コードを変換(0D0A→0A)にして元のテキストに戻すっていうのは可能なんでしょうか?

編集 削除
Say  2002-07-17 09:19:25  No: 75850  IP: [192.*.*.*]

文字の検索ならInStr()
変換ならReplace()です。

編集 削除
syou  2002-07-19 14:37:46  No: 75851  IP: [192.*.*.*]

こんな感じで作ってみたんですけど、vbCrLf(&HD, &HA)
でエラーが出るしGet #1, , strBufの時にはすでにバイナリではないし
どこがだめなんでしょうか??

Dim strBuf As String
  
Open "text.txt" For Binary As #1
    strBuf = Space$(LOF(1))
    Get #1, , strBuf
Close #1

s = InStr(strBuf, vbCrLf(&HD, &HA))      '検索
If s <> 0 Then
    strBuf = Replace(strBuf, vbCrLf(&HD, &HA), vbCrLf(&HA))  '変換
End If
        
Open "text2.txt" For Output As #1 Len = 32000
Print #1, strBuf

編集 削除
たかみちえ  URL  2002-07-19 15:53:25  No: 75852  IP: [192.*.*.*]

んんん?
vbCrLfなんて関数ないですよ、
vbCrLfは、関数ではなく、定数で、改行コード(&HDと&HAの2文字)をあらわすものです。
なので、Replaceでおきかえる文字列には、vbCrLfを直接指定してください。

編集 削除
たかみちえ  URL  2002-07-19 15:55:37  No: 75853  IP: [192.*.*.*]

あと、InStrは、Replace関数の中でも呼ばれている(と思う)ので、意味はないです。
直接Replace...を使っても、速度は変わらないです。

編集 削除
syou  2002-07-20 11:50:24  No: 75854  IP: [192.*.*.*]

ではどうやってvbCrLfを使ってDOSの改行コードとUNIXの改行コードを分けるのでしょうか???

編集 削除
たかみちえ  URL  2002-07-20 17:41:27  No: 75855  IP: [192.*.*.*]

Replaceのおきかえごの文字列には、vbLf…というものはないですから、
Chr(&HA)を指定してあげます。
おきかえ前の文字列については、前に書いた通り

編集 削除
たかみちえ  URL  2002-07-20 17:43:27  No: 75856  IP: [192.*.*.*]

改行コードについて
http://tohoho.wakusei.ne.jp/www.htm
アラカルトの項にたしか、改行コードのことが書いてあったはず。
詳しく知っておくといいでしょう。

編集 削除
syou  2002-07-21 13:42:14  No: 75857  IP: [192.*.*.*]

やっぱり無理です...
strBuf = Replace(strBuf, vbCrLf, Chr(&HA))
とやっても結果は全く変わりません。

編集 削除