CSV文件和多种格式的可自定义程序 [英] CSV files and customisable program for multiple formats

查看:126
本文介绍了CSV文件和多种格式的可自定义程序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我编写了一个似乎正在使用的程序,但是目前它的设置方式我必须为我可能阅读的每种不同类型的CSV文件创建一个新的子程序。



我们的模板CSV永远不会改变。



我想知道的是你有一个定义列信息的文本文件吗?而不是必须创建一个具有不同格式的新子例程。



基本上它是一个CSV读取器,它读取文件并将信息列放入我们要求的格式。这是一个测试样本



I've written a program that seems to be growing in use, but currently the way it's setup I have to create a new sub routine for each different type of CSV file I may read.

Our template CSV will never change.

What I'm trying to find out is can you have a text file that defines column information, rather than having to create a new sub routine with the different format.

Basically it's a CSV reader, that reads through a file and places the columns of information into a format we require. Here is a test sample

currentrow = csvreader.ReadFields()
                        account(0) = (currentrow(0))   'Account number
                        account(1) = (currentrow(29))  'Card Number
                        account(2) = (currentrow(4))   'Firstname
                        account(3) = (currentrow(6))   'Last Name
                        account(4) = (currentrow(2))   'Title
                        account(6) = (currentrow(15))   'Gender
                        account(7) = (currentrow(22))  'Expirydate
                        account(9) = (currentrow(14))  'Birthdate
                        account(12) = (currentrow(11)) 'Postcode
                        account(15) = (currentrow(16)) 'phone number
                        account(20) = (currentrow(20)) 'Email
                        account(26) = (currentrow(7))  'street
                        account(27) = (currentrow(9))  'suburb
                        account(29) = (currentrow(10))  'state
                        account(40) = (currentrow(25))  'accountgroup





当前正在阅读的内容是什么。可以用从文本文件中读取的变量替换行号,并且可能有人指出我正确的方向如何执行此操作:)



Iain Stewart



the currentrow is what's being read. Can the row numbers be replaced with a variable which is read from a text file, and could someone point me in the right direction on how to do this :)

Iain Stewart

推荐答案

如果我正确理解了这个问题,为什么不将映射信息存储在配置文件中并从那里读取。



基本上每个元素都有两条信息:

- 元素的目标列号

- 元素的源列号



例如,名字将有2作为目标,4作为源



要使用配置文件你可以使用 ConfigurationManager.AppSettings [< a href =https://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.appsettings(v=vs.110).aspx\"target =_ blanktitl e =新窗口> ^ ]。



示例行看起来像

If I understand the question correctly, why not store the mapping information in a configuration file and read it from there.

Basically you would have two pieces of information for each element:
- target column number for an element
- source column number for an element

For example first name would have 2 as target and 4 as source

To use a configuration file you can use ConfigurationManager.AppSettings [^].

The example line could look something like
account(CInt(appSettings("FirstName_Target"))) = (currentrow(CInt(appSettings("FirstName_Source")))) 



采用appSetting正确定义,如MSDN中的示例所示。


taken that the appSetting is defined properly as in the example in MSDN.


这篇关于CSV文件和多种格式的可自定义程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆