| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1409 人关注过本帖, 1 人收藏
标题:vb.net读写文件,高手请进
只看楼主 加入收藏
lgmsddy
Rank: 1
等 级:新手上路
帖 子:18
专家分:7
注 册:2010-1-26
结帖率:75%
收藏(1)
已结贴  问题点数:0 回复次数:11 
vb.net读写文件,高手请进
下面是文件内数据:
30,100,50
20,100,10
10,50,10
读取上面的文件后,写成下面的形式:
30,100,50
20,10
10,50

也就是说,上一行和下一行的数据如果相同,就不写,怎么来判断这个过程

说的不清楚,在来举个例子
读取下面的数
100,50,60
100,20,30
因为第二行也有100,所以写的时候
100,50,60  
20,30   ‘第一行已经有100,第二行就不写了,
怎么实现这个分析判读的过程,跪求!
搜索更多相关主题的帖子: 文件 
2010-06-23 10:16
lgmsddy
Rank: 1
等 级:新手上路
帖 子:18
专家分:7
注 册:2010-1-26
收藏
得分:0 
怎么没人回复,给个提示也行啊
2010-06-24 15:56
lgmsddy
Rank: 1
等 级:新手上路
帖 子:18
专家分:7
注 册:2010-1-26
收藏
得分:0 
版主,给点思路吧
2010-06-24 15:57
sugala
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-6-24
收藏
得分:0 
貌似版主不在,,我也急着等他的意见呢。。。

2010-06-24 16:26
南城草
Rank: 1
来 自:广东茂名
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-6-24
收藏
得分:0 
回复 楼主 lgmsddy
你的题目说得不是很清晰,我读出了点意思。下面是我给的一点分析思路。
一,你先声明个数组把已经有的数据进行存储。
二,for 循环   把新进来的数据和原先已经有的数据进行比较。用If语句进行判断,比较。控制输出


我不是很明白你说的意思就不提供代码了,怕浪费资源了。如果要补充再看看吧。
2010-06-24 20:20
lgmsddy
Rank: 1
等 级:新手上路
帖 子:18
专家分:7
注 册:2010-1-26
收藏
得分:0 
谢谢楼上的兄弟
2010-06-25 11:19
sywzs
Rank: 10Rank: 10Rank: 10
来 自:辽宁
等 级:贵宾
威 望:15
帖 子:508
专家分:1725
注 册:2009-5-13
收藏
得分:0 
不知道你的数据源于何处,又要写道哪里?说清楚了可以给你一段代码。
2010-06-26 06:18
lgmsddy
Rank: 1
等 级:新手上路
帖 子:18
专家分:7
注 册:2010-1-26
收藏
得分:0 
版主来了,谢谢,数据来自记事本,热盼!!!
2010-06-27 07:38
sywzs
Rank: 10Rank: 10Rank: 10
来 自:辽宁
等 级:贵宾
威 望:15
帖 子:508
专家分:1725
注 册:2009-5-13
收藏
得分:10 
现学现卖,查了一下帮助,把1楼的数据存到记事本里,编了如下代码,供参考吧。
在窗体上放了两个Listbox控件和一个按钮控件
Imports System
Imports
Public Class Form2
    Private Sub Main()
        Try
            Using sr As StreamReader = New StreamReader("D:\VS编程\读写文件.txt")
                Dim line As String
                Do
                    line = sr.ReadLine()
                    ListBox1.Items.Add(line)
                    Console.WriteLine(line)
                Loop Until line Is Nothing
                sr.Close()
            End Using
        Catch E As Exception
            Console.WriteLine("不能读取文件!")
            Console.WriteLine(E.Message)
        End Try
    End Sub

    Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
        Main()
        Dim STR0 As String
        Dim J As Integer = ListBox1.Items.Count - 1
        Dim AA(J, 2), BB(J, 2) As String
        For I As Integer = 0 To J
            STR0 = ListBox1.Items(I)
            AA(I, 0) = Mid(STR0, 1, InStr(STR0, ",") - 1)
            STR0 = Mid(STR0, InStr(STR0, ",") + 1)
            AA(I, 1) = Mid(STR0, 1, InStr(STR0, ",") - 1)
            AA(I, 2) = Mid(STR0, InStr(STR0, ",") + 1)
        Next
        BB(0, 0) = AA(0, 0)
        BB(0, 1) = AA(0, 1)
        BB(0, 2) = AA(0, 2)
        For I As Integer = 1 To J
            BB(I, 0) = IIf(AA(I, 0) = AA(I - 1, 0), "", AA(I, 0))
            BB(I, 1) = IIf(AA(I, 1) = AA(I - 1, 1), "", AA(I, 1))
            BB(I, 2) = IIf(AA(I, 2) = AA(I - 1, 2), "", AA(I, 2))
        Next
        For I As Integer = 0 To J
            STR0 = BB(I, 0) + IIf(BB(I, 1).Length > 0, "," + BB(I, 1), "") + IIf(BB(I, 2).Length > 0, "," + BB(I, 2), "")
            ListBox2.Items.Add(STR0)
        Next
    End Sub
End Class
2010-06-28 05:01
不说也罢
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:39
帖 子:1481
专家分:4989
注 册:2007-10-7
收藏
得分:10 
根据sywzs版主代码,我也来凑个热闹

程序代码:
Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim i As Integer = 0 '用于计数,从第二行开始比对
        Dim t As Integer = 0
        Dim a() As String '用于记录上一行的字符
        Dim b() As String '用于记录当前行的字符
        Dim bSame As Boolean = False '判定是否在上一行有相同的
        Dim newstring As String = "" '用于输出筛选后的字符
        Try
            Using sr As StreamReader = New StreamReader("D:\1.txt")
                Dim line As String
                Do
                    newstring = "" : ReDim b(0) : bSame = False '每次读取一行前初始化变量值
                    line = sr.ReadLine()

                    t = UBound(line.Split(","))
                    For j As Integer = 0 To t
                        ReDim Preserve b(j)
                        b(j) = line.Split(",")(j)
                    Next
                    i = i + 1
                    If i > 1 Then '从第二行开始比对
                        For j = 0 To b.Count - 1
                            bSame = False
                            For k = 0 To a.Count - 1
                                If a(k) = b(j) Then
                                    bSame = True
                                    Exit For
                                End If
                            Next
                            If bSame = False Then newstring = newstring & b(j) & ","
                        Next

                        Console.WriteLine(newstring.Substring(0, newstring.Length - 1)) '输出结果到.net的输出窗口
                    Else
                        Console.WriteLine(line)'输出结果到.net的输出窗口
                    End If

                    a = b '比对结束后,将数组B赋值给A,便于下一行比对
                Loop Until line Is Nothing
                sr.Close()

            End Using
        Catch Ex As Exception
            Console.WriteLine("不能读取文件!")
            Console.WriteLine(Ex.Message)
        End Try


    End Sub
End Class

===================================================
讨厌C#的行尾的小尾巴;和一对大括号{ }
===================================================
2010-06-28 18:31
快速回复:vb.net读写文件,高手请进
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023604 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved