CSVの""を文字として読み込ませたい


なお  2007-01-23 23:46:58  No: 97730

CSVファイルのデータを下記の要領でコンボボックスに格納しています。

    intFileNo = FreeFile

    Open strFileName For Input As #intFileNo

    Do While Not EOF(intFileNo)
        Input #intFileNo, henohenomoheji
        Combo1.AddItem (henohenomoheji)
    Loop

通常の文字は問題がないのですが、CSVファイルに
「""」(ダブルコーテーション)の文字が入っている場合に、
正常に動作しません。

例:
「"あいうえお"かきくけこ」の文字を読み込む際にコンボボックスの表示が
「"あいうえお"かきくけこ」ではなく
「あいうえお」
「かきくけこ」と別データとして表示されてしまいます。

1つのデータとして読み込む方法はないでしょうか?
わかりづらい説明かもしれませんがご指導よろしくお願いします。


あんび  2007-01-24 00:44:30  No: 97731

Line Input #1, henohenomoheji
にしてから自分で分解するとか


あんび  2007-01-24 00:54:54  No: 97732

Dim xBunkai()       As String
追記
Do While Not EOF(intFileNo)
    Line Input #intFileNo, henohenomoheji
    xBunkai() = Split(henohenomoheji, ",")
    If UBound(xBunkai()) >= 0 Then
        For i = 0 To UBound(xBunkai())
            Combo1.AddItem xBunkai(i)
        Next i
    End If
Loop
ただし、当然 あああああ,いいい  だと2つに分かれるんで。


なお  2007-01-24 01:19:02  No: 97733

あんびさん、ありがとうございます。

以下の処理を作成しています。

1.クリップボードを取得

2.コンボボックスにクリップボードの内容を追加

3.CSVファイルにコンボボックスの内容を保存

4.次回起動時にCSVファイルの内容をコンボボックスに追加

現在4.で、つまづいています。

>Line Input #intFileNo, henohenomoheji

では改行した文字を読み込む際に改行部分で別データになってしまいます。

根本的に上記のような処理は難しいのでしょうか・・・


あんび  2007-01-24 02:36:21  No: 97734

逃げ道はあるけど、制約になってしまいます。
例えば、LINEINPUTで読んだデータに
****  という文字列が入っていたら内部的に改行コードとして扱うなど。
この場合、****の部分は絶対クリップボードにいれないだろうと思う
文字列にしておけばほとんどの場合大丈夫だとおもうけど
****に該当する文字をクリップボードにいれたとしたら改行として扱う
プログラムになるんでしょうね(説明がわかりにくいですが)
**** を VBCRLF  に内部で変換する  と言う仕様にしたらいけそうだけど
**** とクリップボードにはいっていたら VBCRLFに置き換わる
と言いたいだけなんですが。
説明下手ですいません。


我龍院  2007-01-25 04:04:01  No: 97735

わからなくなったら思いっきり簡略化した
コードで試してみるのも手です。
Private Sub Form_Load()
    Dim a As String
    Combo1.AddItem """" & "あいうえお" & """" & "かきくけこ"
    Open App.Path & "\" & "test.csv" For Output As #1
    Print #1, Combo1.List(0)
    Close
    Open App.Path & "\" & "test.csv" For Input As #1
    Line Input #1, a
    Close
    Combo1.AddItem a
End Sub
「"あいうえお"かきくけこ」が2つコンボボックスに入ればOKですよね。
特に何も問題は無いと思いますが。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加