tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトルCSVから重複しないデータの抽出
記事No11305
投稿日: 2008/02/01(Fri) 16:22
投稿者さるうっち
こんにちは。おじゃまします。

環境はWIndowsXp VB6.0 SP3 です。

CSVデータ

○○県,○○町,13-132,○田○子,090-1111-1111
△○県,■○市,4312,○嶋○美,090-2222-5555
○○県,○○町,525,○山○子,090-2222-5555
○□県,○△町,332,○谷○夫,090-3333-4444


という住所データ(1000行)があります。
このデータから、重複しない住所(都道府県、市町村)
の組み合わせを抽出したいのです。

抽出したデータは都道府県と市町村の変数に格納します。
使用するのは、1列目と2列目です。ソートはしません。

TODOUHUKEN(0)="○○県" SITYOUSON(0)="○○町"
TODOUHUKEN(1)="△○県" SITYOUSON(1)="■○市"  
TODOUHUKEN(2)="○□県" SITYOUSON(2)="○△町"

頭の中ではわかっているのですが、コード化できなくて困っています。
お力をお貸しください。
    





  

[ツリー表示へ]
タイトルRe: CSVから重複しないデータの抽出
記事No11306
投稿日: 2008/02/01(Fri) 16:55
投稿者YK
こんにちは。

サンプルです。
後は御自分で加工して下さい。

Sub TEST()
    Dim SD      As Object
    Dim strFnm  As String
    Dim intFno  As Integer
    Dim strBuf  As String
    Dim varD    As Variant
    Dim i       As Long
    
    strFnm = "D:\TEST.csv"
    intFno = FreeFile
    
    Set SD = CreateObject("Scripting.Dictionary")
    
    Open strFnm For Input As #intFno
    Do While Not EOF(intFno)
        Line Input #intFno, strBuf
        varD = Split(strBuf, ",")
        SD(varD(0) & "," & varD(1)) = Empty
    Loop
    Close #intFno
    
    varD = SD.keys
    For i = 0 To UBound(varD)
        Debug.Print varD(i)
    Next
End Sub

[ツリー表示へ]
タイトルRe: CSVから重複しないデータの抽出
記事No11307
投稿日: 2008/02/01(Fri) 17:04
投稿者魔界の仮面弁士
> 環境はWIndowsXp VB6.0 SP3 です。
SP3 というのは、XP の方では無く、VB6 の方ですよね。

Windows XP (SPなし) + VB6 (SP3) というのは、幾つかの問題があるので、
Windows XP (SP2) + VB6 (SP6) にした方が良いと思いますけれども…。

XP/SP2 の導入が怖いなら、せめて、XP/SP1 だけでも。
VB6 も、せめて SP5 を。

> CSVデータ
「,」を含む住所(団地表記などで、稀にある)は大丈夫ですか?

> このデータから、重複しない住所(都道府県、市町村)
> の組み合わせを抽出したいのです。
(案1) Scripting.Dictionary を使って重複チェックを行う。
(案2) CSV を ADODB.Recordset に読ませ、Sort プロパティで並び替えて重複チェック。

[ツリー表示へ]