C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[12]: txtファイルを1行づつ比較


(過去ログ 124 を表示中)

[トピック内 17 記事 (1 - 17 表示)]  << 0 >>

■73776 / inTopicNo.1)  txtファイルを1行づつ比較
  
□投稿者/ 開発者 (1回)-(2014/11/03(Mon) 20:29:43)

分類:[.NET 全般] 

VisualBasic2010で開発をしているものです。
1.txtと2.txtがあったとして、1.txtをLabel1に読み込んでおき、2.txtをLabel2に読み込むときに、Label1と1行づつ比較して、もし同じ文字列があった場合その文字列をLabel3に表示させることは出来ませんか?読点多くてすみません。ご回答よろしくお願いします。
引用返信 編集キー/
■73777 / inTopicNo.2)  Re[1]: txtファイルを1行づつ比較
□投稿者/ しま (90回)-(2014/11/03(Mon) 23:30:20)
No73776 (開発者 さん) に返信
> VisualBasic2010で開発をしているものです。
> 1.txtと2.txtがあったとして、1.txtをLabel1に読み込んでおき、2.txtをLabel2に読み込むときに、Label1と1行づつ比較して、
>もし同じ文字列があった場合その文字列をLabel3に表示させることは出来ませんか?

出来ると思いますよ。
ただし、同じ文字列があったらの判定条件が不明確なので、あなたの考えている判定条件を書いてくださると返事が得やすいとも思います。

VB2010 だけでなく、OSのバージョンやVB2010Express かどうか等の開発環境、動作環境も少し詳しく書いてください
引用返信 編集キー/
■73782 / inTopicNo.3)  Re[2]: txtファイルを1行づつ比較
□投稿者/ ゲームサーバー管理者 (3回)-(2014/11/04(Tue) 16:49:31)
No73777 (しま さん) に返信
> VB2010 だけでなく、OSのバージョンやVB2010Express かどうか等の開発環境、動作環境も少し詳しく書いてください
Windows7で開発していて、VisualStudio2012ExpressでVisualBasic2010の言語を書き、開発しております。よろしくお願いいたします。
引用返信 編集キー/
■73783 / inTopicNo.4)  Re[2]: txtファイルを1行づつ比較
□投稿者/ 開発者 (2回)-(2014/11/04(Tue) 16:54:38)
No73777 (しま さん) に返信

すみません、先程は別の名前を使用してしまいました。

>ただし、同じ文字列があったらの判定条件が不明確なので、あなたの考えている判定条件を書いてくださると返事が得やすいとも思います。

判定条件とは具体的にどのようなことでしょうか?初歩的な質問ですみません。

引用返信 編集キー/
■73784 / inTopicNo.5)  Re[3]: txtファイルを1行づつ比較
□投稿者/ 優希(ゆき) (10回)-(2014/11/04(Tue) 17:33:55)
No73783 (開発者 さん) に返信
> ■No73777 (しま さん) に返信
>
> すみません、先程は別の名前を使用してしまいました。
>
> >ただし、同じ文字列があったらの判定条件が不明確なので、あなたの考えている判定条件を書いてくださると返事が得やすいとも思います。
>
> 判定条件とは具体的にどのようなことでしょうか?初歩的な質問ですみません。
>

初歩的なことがわからないのであれば、はじめてのプログラミングのような書籍買ってきて、勉強した方がいいと思う。

引用返信 編集キー/
■73785 / inTopicNo.6)  Re[3]: txtファイルを1行づつ比較
□投稿者/ 優希(ゆき) (11回)-(2014/11/04(Tue) 17:42:08)
つーか、初歩的ってわかるのであれば(ry
(どこかにも、書いてあった気がする…)
引用返信 編集キー/
■73786 / inTopicNo.7)  Re[3]: txtファイルを1行づつ比較
□投稿者/ しま (91回)-(2014/11/04(Tue) 18:06:26)
No73783 (開発者 さん) に返信
> >ただし、同じ文字列があったらの判定条件が不明確なので、あなたの考えている判定条件を書いてくださると返事が得やすいとも思います。
>
> 判定条件とは具体的にどのようなことでしょうか?初歩的な質問ですみません。

同じ文字列だと判断(判定)するのはどういう場合ですか?という意味です。
例えば、以下の場合同じ文字列は何ですか?
そして、同じ文字列だと判る基準は何ですか?
1)
あああ
いい
ううう

2)
あああ
いい
うえお
引用返信 編集キー/
■73788 / inTopicNo.8)  Re[4]: txtファイルを1行づつ比較
□投稿者/ 開発者 (3回)-(2014/11/04(Tue) 20:23:38)
No73786 (しま さん) に返信
文字列の完全一致で同じ文字列だと判断します。1文字でも違ったら同じ文字列と判断しません。
その場合だと、「ああ」と「いい」を同じ文字列と判断させたいです。
引用返信 編集キー/
■73790 / inTopicNo.9)  Re[5]: txtファイルを1行づつ比較
□投稿者/ 優希(ゆき) (2回)-(2014/11/05(Wed) 00:41:41)
No73788 (開発者 さん) に返信
> ■No73786 (しま さん) に返信
> 文字列の完全一致で同じ文字列だと判断します。1文字でも違ったら同じ文字列と判断しません。
> その場合だと、「ああ」と「いい」を同じ文字列と判断させたいです。

え?????
なんで、「ああ」と「いい」がイコールになるの???

アルゴリズム教えてよ。
引用返信 編集キー/
■73792 / inTopicNo.10)  Re[5]: txtファイルを1行づつ比較
□投稿者/ Azulean (356回)-(2014/11/05(Wed) 07:08:46)
2014/11/05(Wed) 07:13:23 編集(投稿者)

No73790 (優希(ゆき) さん) に返信
> なんで、「ああ」と「いい」がイコールになるの???

しまさんが例示されたファイル内容の 1 行目同士と 2 行目同士を一致とみなしたいという意味なのでしょう。
結果として Label3 に 3 行目を除いた出力を得たいと。


No73788 (開発者 さん) に返信
> 文字列の完全一致で同じ文字列だと判断します。1文字でも違ったら同じ文字列と判断しません。
> その場合だと、「ああ」と「いい」を同じ文字列と判断させたいです。

ところで、どこまでわかっていて、どこがわからないのでしょうか。
自分がわかっていること、わからないので質問したいことを明確にしましょう。

(冷たいことを言うと、「できませんか?」→「できるよ」で質問と回答は終わっていると言え、その後の質問は書かれていないので)
引用返信 編集キー/
■73794 / inTopicNo.11)  Re[6]: txtファイルを1行づつ比較
□投稿者/ 優希(ゆき) (12回)-(2014/11/05(Wed) 08:55:43)
No73792 (Azulean さん) に返信
> 2014/11/05(Wed) 07:13:23 編集(投稿者)
>
> ■No73790 (優希(ゆき) さん) に返信
>>なんで、「ああ」と「いい」がイコールになるの???
>
> しまさんが例示されたファイル内容の 1 行目同士と 2 行目同士を一致とみなしたいという意味なのでしょう。
> 結果として Label3 に 3 行目を除いた出力を得たいと。
>
>

余計にわからなくなりました…

私が思ってたのは

テキストA テキストB  比較
あああ   あああ  → OK
いいい   いい   → NG
ううう   ううう  → OK
えええ   おおお  → NG

こういう意味で大丈夫ですよね?



引用返信 編集キー/
■73805 / inTopicNo.12)  Re[7]: txtファイルを1行づつ比較
□投稿者/ 開発者 (4回)-(2014/11/05(Wed) 16:54:05)
No73794 (優希(ゆき) さん) に返信

> 余計にわからなくなりました…
>
> 私が思ってたのは
>
> テキストA テキストB  比較
> あああ   あああ  → OK
> いいい   いい   → NG
> ううう   ううう  → OK
> えええ   おおお  → NG
>
> こういう意味で大丈夫ですよね?

その通りです。
引用返信 編集キー/
■73807 / inTopicNo.13)  Re[8]: txtファイルを1行づつ比較
□投稿者/ shu (628回)-(2014/11/05(Wed) 17:22:31)
No73805 (開発者 さん) に返信
> ■No73794 (優希(ゆき) さん) に返信
> 
>>余計にわからなくなりました…
>>
>>私が思ってたのは
>>
>>テキストA テキストB  比較
>>あああ   あああ  → OK
>>いいい   いい   → NG
>>ううう   ううう  → OK
>>えええ   おおお  → NG
>>
>>こういう意味で大丈夫ですよね?
> 
> その通りです。



テキストA テキストB
あああ   あああ 
いいい   えお  
ううう   いいい 
えええ   けけけ
      えええ 

これは?どうなりますか?

引用返信 編集キー/
■73829 / inTopicNo.14)  Re[9]: txtファイルを1行づつ比較
□投稿者/ 開発者 (5回)-(2014/11/07(Fri) 14:43:43)
No73807 (shu さん) に返信
> ■No73805 (開発者 さん) に返信
>>■No73794 (優希(ゆき) さん) に返信
>>
> >>余計にわからなくなりました…
> >>
> >>私が思ってたのは
> >>
> >>テキストA テキストB  比較
> >>あああ   あああ  → OK
> >>いいい   いい   → NG
> >>ううう   ううう  → OK
> >>えええ   おおお  → NG
> >>
> >>こういう意味で大丈夫ですよね?
>>
>>その通りです。
>
>
>
> テキストA テキストB
> あああ   あああ 
> いいい   えお  
> ううう   いいい 
> えええ   けけけ
>       えええ 
>
> これは?どうなりますか?
>

テキストA テキストB
あああ   あああ →一致 
いいい   えお  →不一致
ううう   いいい →不一致
えええ   けけけ →不一致
      えええ →不一致

です。
引用返信 編集キー/
■73834 / inTopicNo.15)  Re[10]: txtファイルを1行づつ比較
□投稿者/ ainax (1回)-(2014/11/08(Sat) 10:59:23)
横より失礼します。
ちょっとコードを書いて見ました。

新規プロジェクトのフォームにラベル3個とボタン1個で動くと思います。

Public Class Form1

    Private Comp As Compare = New Compare()

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Me.Button1.Text = "Next"

        Comp.ReadTextA("C:\AAA.txt")
        Comp.ReadTextB("C:\BBB.txt")

        Comp.MoveFirst()

        AddHandler Comp.NextResult, AddressOf OnNextResult
    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Comp.OnNextResult()
    End Sub

    Private Sub OnNextResult(value1 As String, value2 As String, value3 As String)
        Me.Label1.Text = value1
        Me.Label2.Text = value2
        Me.Label3.Text = value3
    End Sub

End Class


Public Class Compare
    Private TextA As List(Of String) = New List(Of String)
    Private TextB As List(Of String) = New List(Of String)

    Public Sub ReadTextA(path As String)
        TextA.Clear()
        TextA.AddRange(Read(path))
    End Sub
    Public Sub ReadTextB(path As String)
        TextB.Clear()
        TextB.AddRange(Read(path))
    End Sub

    Private Iterator Function Read(path As String) As IEnumerable(Of String)
        Using sr As New IO.StreamReader(path)
            While (Not sr.EndOfStream)
                Yield sr.ReadLine()
            End While
        End Using
    End Function

    Private _Current As Integer = 0

    Public Sub MoveFirst()
        _Current = 0
    End Sub

    Public Property EndOfList()
        Get
            Return (_Current >= TextA.Count And _Current >= TextB.Count)
        End Get
        Private Set(value)

        End Set
    End Property

    Public Event NextResult As Action(Of String, String, String)

    Public Sub OnNextResult()
        If EndOfList Then Exit Sub

        Dim retA As String = TextA.Skip(_Current).Take(1).FirstOrDefault()
        Dim retB As String = TextB.Skip(_Current).Take(1).FirstOrDefault()

        _Current += 1

        If retA Is Nothing OrElse retB Is Nothing Then
            If retA Is Nothing AndAlso retB Is Nothing Then
                RaiseEvent NextResult(retA, retB, Nothing) ' 両方ともNothing
            Else
                RaiseEvent NextResult(retA, retB, "") ' 片方だけNothing
            End If

            Exit Sub
        End If

        RaiseEvent NextResult(retA, retB, IIf(retA = retB, retA, ""))
    End Sub
End Class

# ファイル読み込みのエラー処理とかしてません。

引用返信 編集キー/
■73836 / inTopicNo.16)  Re[11]: txtファイルを1行づつ比較
□投稿者/ 開発者 (6回)-(2014/11/09(Sun) 12:09:47)
No73834 (ainax さん) に返信
> 横より失礼します。
> ちょっとコードを書いて見ました。
>
> 新規プロジェクトのフォームにラベル3個とボタン1個で動くと思います。
>
> Public Class Form1
>
> Private Comp As Compare = New Compare()
>
> Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
> Me.Button1.Text = "Next"
>
> Comp.ReadTextA("C:\AAA.txt")
> Comp.ReadTextB("C:\BBB.txt")
>
> Comp.MoveFirst()
>
> AddHandler Comp.NextResult, AddressOf OnNextResult
> End Sub
>
> Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
> Comp.OnNextResult()
> End Sub
>
> Private Sub OnNextResult(value1 As String, value2 As String, value3 As String)
> Me.Label1.Text = value1
> Me.Label2.Text = value2
> Me.Label3.Text = value3
> End Sub
>
> End Class
>
>
> Public Class Compare
> Private TextA As List(Of String) = New List(Of String)
> Private TextB As List(Of String) = New List(Of String)
>
> Public Sub ReadTextA(path As String)
> TextA.Clear()
> TextA.AddRange(Read(path))
> End Sub
> Public Sub ReadTextB(path As String)
> TextB.Clear()
> TextB.AddRange(Read(path))
> End Sub
>
> Private Iterator Function Read(path As String) As IEnumerable(Of String)
> Using sr As New IO.StreamReader(path)
> While (Not sr.EndOfStream)
> Yield sr.ReadLine()
> End While
> End Using
> End Function
>
> Private _Current As Integer = 0
>
> Public Sub MoveFirst()
> _Current = 0
> End Sub
>
> Public Property EndOfList()
> Get
> Return (_Current >= TextA.Count And _Current >= TextB.Count)
> End Get
> Private Set(value)
>
> End Set
> End Property
>
> Public Event NextResult As Action(Of String, String, String)
>
> Public Sub OnNextResult()
> If EndOfList Then Exit Sub
>
> Dim retA As String = TextA.Skip(_Current).Take(1).FirstOrDefault()
> Dim retB As String = TextB.Skip(_Current).Take(1).FirstOrDefault()
>
> _Current += 1
>
> If retA Is Nothing OrElse retB Is Nothing Then
> If retA Is Nothing AndAlso retB Is Nothing Then
> RaiseEvent NextResult(retA, retB, Nothing) ' 両方ともNothing
> Else
> RaiseEvent NextResult(retA, retB, "") ' 片方だけNothing
> End If
>
> Exit Sub
> End If
>
> RaiseEvent NextResult(retA, retB, IIf(retA = retB, retA, ""))
> End Sub
> End Class
>
> # ファイル読み込みのエラー処理とかしてません。

ありがとうございます。
引用返信 編集キー/
■73837 / inTopicNo.17)  Re[12]: txtファイルを1行づつ比較
□投稿者/ 開発者 (7回)-(2014/11/09(Sun) 12:09:57)
No73836 (開発者 さん) に返信
> ■No73834 (ainax さん) に返信
>>横より失礼します。
>>ちょっとコードを書いて見ました。
>>
>>新規プロジェクトのフォームにラベル3個とボタン1個で動くと思います。
>>
>>Public Class Form1
>>
>> Private Comp As Compare = New Compare()
>>
>> Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
>> Me.Button1.Text = "Next"
>>
>> Comp.ReadTextA("C:\AAA.txt")
>> Comp.ReadTextB("C:\BBB.txt")
>>
>> Comp.MoveFirst()
>>
>> AddHandler Comp.NextResult, AddressOf OnNextResult
>> End Sub
>>
>> Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
>> Comp.OnNextResult()
>> End Sub
>>
>> Private Sub OnNextResult(value1 As String, value2 As String, value3 As String)
>> Me.Label1.Text = value1
>> Me.Label2.Text = value2
>> Me.Label3.Text = value3
>> End Sub
>>
>>End Class
>>
>>
>>Public Class Compare
>> Private TextA As List(Of String) = New List(Of String)
>> Private TextB As List(Of String) = New List(Of String)
>>
>> Public Sub ReadTextA(path As String)
>> TextA.Clear()
>> TextA.AddRange(Read(path))
>> End Sub
>> Public Sub ReadTextB(path As String)
>> TextB.Clear()
>> TextB.AddRange(Read(path))
>> End Sub
>>
>> Private Iterator Function Read(path As String) As IEnumerable(Of String)
>> Using sr As New IO.StreamReader(path)
>> While (Not sr.EndOfStream)
>> Yield sr.ReadLine()
>> End While
>> End Using
>> End Function
>>
>> Private _Current As Integer = 0
>>
>> Public Sub MoveFirst()
>> _Current = 0
>> End Sub
>>
>> Public Property EndOfList()
>> Get
>> Return (_Current >= TextA.Count And _Current >= TextB.Count)
>> End Get
>> Private Set(value)
>>
>> End Set
>> End Property
>>
>> Public Event NextResult As Action(Of String, String, String)
>>
>> Public Sub OnNextResult()
>> If EndOfList Then Exit Sub
>>
>> Dim retA As String = TextA.Skip(_Current).Take(1).FirstOrDefault()
>> Dim retB As String = TextB.Skip(_Current).Take(1).FirstOrDefault()
>>
>> _Current += 1
>>
>> If retA Is Nothing OrElse retB Is Nothing Then
>> If retA Is Nothing AndAlso retB Is Nothing Then
>> RaiseEvent NextResult(retA, retB, Nothing) ' 両方ともNothing
>> Else
>> RaiseEvent NextResult(retA, retB, "") ' 片方だけNothing
>> End If
>>
>> Exit Sub
>> End If
>>
>> RaiseEvent NextResult(retA, retB, IIf(retA = retB, retA, ""))
>> End Sub
>>End Class
>>
>># ファイル読み込みのエラー処理とかしてません。
>
> ありがとうございます。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -