c#格式化数据写入csv文件

时间:2019-03-31 06:02:41

标签: c#

我的C#非常有限,我的英语也很有限。我需要你的帮助。我需要编辑条形码阅读器中的数据。这样的传入数据。

1-) 12345678 (Barcode)
2-) 310319  (Date d m y format)
3-) 174252  (Hour minute second) 
4-) 123 (Barcode)
5-) 010419 (Date d m y format)
6-) 153020  (Hour minute second)
7-) 3873 (Code)

好吧,这是我从条形码读取器读取的数据。我想按以下格式设置数据。

最终输出是这样的样本。对不起,我的英语不好,你能帮我吗

1-) 12345678  (Barcode not change)
2-) 2 and 3 lines to timestamp ( 310319 + 174252) ? to timestamp
3-) 123 (Barcode not change)
4-) 5 and 6 lines to timestamp (010419 + 153020) ? to timesatamp
5-) 3873 (not change)
string name = lvw.SubItems[1].Text = Splt[0];
string filePath = @"C:\Temp\data.csv";
var one   = lvw.SubItems[1].Text = Splt[0];
var two   = lvw.SubItems[1].Text = Splt[1];
var three = lvw.SubItems[1].Text = Splt[2];
var four  = lvw.SubItems[1].Text = Splt[3];
var five  = lvw.SubItems[1].Text = Splt[4];
var six   = lvw.SubItems[1].Text = Splt[5];
var seven = lvw.SubItems[1].Text = Splt[6];
var data = one +";" + two + ";" + three + ";" 
        + four + ";" + five + ";" + six + ";" + seven + Environment.NewLine;                

File.AppendAllText(filePath, data);

变量2 + 3组合时间戳记,这是我的问题吗?

3 个答案:

答案 0 :(得分:1)

假设您当前的代码可用于其他项目,则应该是:

//var data = one +";" + two + ";" + three + ";" + four + ";" + five + ";" + six + ";" + seven + Environment.NewLine;                
  var data = one +";" + two + ";" + three + four + ";" + five + six + ";" + seven + Environment.NewLine;                

第三项将变成"310319174252"

答案 1 :(得分:1)

@Henk Holtermans的答案非常适合您提出的问题,因为您无法确定案例的时间戳。

我只是想补充一下DateTime的用法,因为它将来可能对您有用。

首先,将字符串转换为DateTime对象:

    string date = "310319";
    string time = "174252";
    DateTime dt;
    string timestamp;

    bool correct = DateTime.TryParseExact(date + time, 
                                          "ddMMyyHHmmss", 
                                          CultureInfo.InvariantCulture, 
                                          DateTimeStyles.AdjustToUniversal,
                                          out dt);  
    if(correct){
        timestamp = dt.ToString("yyyyMMddHHmmssffff");
    }

TryParse可让您获取转换的布尔结果,这意味着即使结果为true,也无需检查错误。 TryParseExact让您告诉函数exaclty字符串是如何形成的 Here您可以看到自定义格式字符串列表 out dt是转换后的日期时间将被存储的地方

之后,我要检查结果是否为布尔值,以及转换是否成功,所以我获取了DateTime对象的时间戳字符串。

“ yyyyMMddHHmmssffff”是字符串的输出格式,其中yyyy是4个字符的年份,MM是2个字符的月份,依此类推。我已经提供的链接中包含所有可能的自定义字符串。

答案 2 :(得分:1)

import os
import numpy as np
import cv2  
import glob  

path = glob.glob("./images/*.jpg")
for file in path:
    img = cv2.imread(file,0)
    px = img.shape
    with open('image_size.csv', 'a+') as f:   
    f.write('%s\n' % str(px)) 

谢谢大家。这就是我解决问题的方式。