乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 63|回复: 5

[编程交流] 如何在文件中查找(C S V)

[复制链接]

16

主题

36

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
80
发表于 2022-7-6 12:40:04 | 显示全部楼层 |阅读模式
我有一个大矩形和许多小矩形。
 
我想找到合适的人选。csv文件,这一个小矩形的文件名,这是在大矩形(左下角点->右上角点坐标范围)。
 
示例:
 
大矩形:
 
左下点:848235.6561446578.4652
右上点:849267.9715447056.4045
 
 
CSV文件:
 
柱:
1、小矩形文件名
2、小矩形左下点X坐标
3、小矩形左下点Y坐标
4、小矩形右下角点X坐标
5、小矩形右下角点Y坐标
6、小矩形右上角点X坐标
7、小矩形右上角点Y坐标
8、小矩形左上角点X坐标
9、小矩形左上点Y坐标
 
文件1;848375.0000;446750.0000;848750.0000;446750.0000;848750.0000;447000.0000;848375.0000;447000.0000;
文件2;848375.0000;446500.0000;848750.0000;446500.0000;848750.0000;446750.0000;848375.0000;446750.0000;
文件3;848750.0000;447000.0000;849125.0000;447000.0000;849125.0000;447250.0000;848750.0000;447250.0000;
文件4;848375.0000;446250.0000;848750.0000;446250.0000;848750.0000;446500.0000;848375.0000;446500.0000;
文件5;848750.0000;446500.0000;849125.0000;446500.0000;849125.0000;446750.0000;848750.0000;446750.0000;
文件6;848750.0000;446250.0000;849125.0000;446250.0000;849125.0000;446500.0000;848750.0000;446500.0000;

 
有人能帮我吗?
回复

使用道具 举报

10

主题

973

帖子

909

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 12:52:37 | 显示全部楼层
这项任务似乎有几个方面:你在调查哪一个?
 
如果问题是关于检索CVS中包含的信息,那么请查看“FileSystemObject”。它可以用来打开文件并逐行读取。
 
该任务的另一个方面是分析每行文本以对单个元素进行排序。VBA函数InStr、Split、Trim等应该会有所帮助。
 
剩下的任务是确定较小的是否包含在较大的中。与大矩形一样,这里的重要信息是左下角和右上角。因此,如果:
 
如果smallLL(0)>largeLL(0)和
smallLL(1)>largeLL(1)和
smallUR(0)
smallUR(1)
 
小包含在大中。
回复

使用道具 举报

16

主题

36

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
80
发表于 2022-7-6 13:05:48 | 显示全部楼层
 
Thx,如果条件良好。
 
你能告诉我一些关于CSV问题的例子吗?
回复

使用道具 举报

10

主题

973

帖子

909

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 13:22:28 | 显示全部楼层
这到底是什么问题?
回复

使用道具 举报

16

主题

36

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
80
发表于 2022-7-6 13:36:49 | 显示全部楼层
 
这是CSV文件:
 
文件名;smallLL(0);Smalll(1);smallUR(0);smallUR(1);
 
文件1;848375.0000;446750.0000;848750.0000;447000.0000;
文件2;848375.0000;446500.0000;848750.0000;446750.0000;
文件3;848750.0000;447000.0000;849125.0000;447250.0000;
文件4;848375.0000;446250.0000;848750.0000;446500.0000;
文件5;848750.0000;446500.0000;849125.0000;446750.0000;
文件6;848750.0000;446250.0000;849125.0000;446500.0000;
...
...
 
我想读smallLL(0);Smalll(1);smallUR(0);和CSV文件中的smallUR(1)。
 
 
以及:
 
如果smallLL(0)>largeLL(0)和
smallLL(1)>largeLL(1)和
smallUR(0)
smallUR(1)
 
然后:
 
我想从csv中获取这些文件名(第1列),其中IF条件为true。
 
这就是问题所在。
回复

使用道具 举报

16

主题

36

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
80
发表于 2022-7-6 13:48:14 | 显示全部楼层
问题解决了'
 
  1.    file_name = "D:\items.csv"
  2.    fnum = FreeFile
  3.    Open file_name For Input As fnum
  4.    whole_file = Input$(LOF(fnum), #fnum)
  5.    Close fnum
  6.    lines = Split(whole_file, vbCrLf)
  7.    num_rows = UBound(lines) - 1
  8.    For R = 0 To num_rows
  9.             one_line = Split(lines(R), ";")
  10.                         
  11.             If one_line(1) > largeLL(0) And one_line(2) > largeLL(1) And one_line(3) < largeUR(0) And one_line(4) < largeUR(1) Then
  12.            Msgbox one_line(0)      
  13.            Else
  14.      
  15.            End If
  16.    Next R
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-1 21:12 , Processed in 0.675692 second(s), 64 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表