第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將文本文件轉(zhuǎn)換為csv

如何將文本文件轉(zhuǎn)換為csv

C#
白板的微信 2022-12-24 12:15:34
我有一個列長度固定的輸入文件,我需要將文件轉(zhuǎn)換為 csv。當前代碼將其轉(zhuǎn)換為 csv,但列會根據(jù)不同長度的空格進行偏移。如何刪除多余的逗號以使列數(shù)統(tǒng)一?C#、Visual Studio 和 CSVusing System;using System.IO;using System.Linq;namespace write_csv{    class Program    {        static void Main(string[] args)        {            string csvfilePath = @"C:\Users\ai_hacker\Desktop\output.csv";            string[] lines = System.IO.File.ReadAllLines(@"C:\Users\ai_hacker\Desktop\orsc1827.ot2");            foreach (string line in lines)            {                var parts = line.Split(' ');                string csvLine = string.Join(',', parts);                Console.WriteLine(csvLine);                File.AppendAllText(csvfilePath, csvLine + Environment.NewLine);            }        }    }}輸入:439790                6806991   4700       NORTH AMERICAN 04/18/19  08161895  P90947L6 - O076GG7F91921221              6835746   1385       GALLAGHER POWER04/18/19  09024922  P90948G0 - O076GHAR當前輸出:439790,,,,,,,,,,,,,,,,6806991,,,4700,,,,,,,NORTH,AMERICAN,04/18/19,,08161895,,P90947L6,-,O076GG7F91921221,,,,,,,,,,,,,,6835746,,,1385,,,,,,,GALLAGHER,POWER04/18/19,,09024922,,P90948G0,-,O076GHAR需要列對齊:439790,6806991,4700,NORTH,AMERICAN,04/18/19,08161895,P90947L6,-,O076GG7F91921221,6835746,1385,GALLAGHER,POWER04/18/19,09024922,P90948G0,-,O076GHAR
查看完整描述

4 回答

?
千巷貓影

TA貢獻1829條經(jīng)驗 獲得超7個贊

輸入是空格分隔的txt,需要它csv


foreach (string line in lines)

{

    var parts = line.Split(' ');

    string csvLine = string.Join(',', parts);

    Console.WriteLine(csvLine);

}

這是一個快速修復。對于“官方”csv,您需要考慮放置"文本字段,因此要區(qū)分文本和數(shù)字。


查看完整回答
反對 回復 2022-12-24
?
拉莫斯之舞

TA貢獻1820條經(jīng)驗 獲得超10個贊

這項工作可以在一行中完成,無需顯式循環(huán)


string csvfilePath = @"C:\Users\Desktop\ooutput.csv";

string[] lines = System.IO.File.ReadAllLines(@"C:\Users\Desktop\orsc1827.ot2");

var result = string.Join(Environment.NewLine, 

                    lines.Select(x => x.Split(' '))

                         .Select(x => string.Join(",", x)));

File.WriteAllText(csvfilePath, result);

樣本輸入為


string input = @"

     1846223 6833581-1 75522 ADMC 04/17/19 09283609 P9093CC8 - O076FDE4

     1846201 6833581-1 75522 ADMC 04/17/19 09284581 P9093CC4 - O076FDE9";

我在結(jié)果字符串中得到了這個輸出


1846223,6833581-1,75522,ADMC,04/17/19,09283609,P9093CC8,-,O076FDE4

1846201,6833581-1,75522,ADMC,04/17/19,09284581,P9093CC4,-,O076FDE9

如果你想把最后兩個子串放在一起,那么你可以添加


var result = string.Join(Environment.NewLine, 

              lines.Select(x => x.Replace(" - ", "-")

                  .Split(' ')).Select(x => string.Join(",", x)));

如果數(shù)據(jù)之間有多個空格,則可以通過此更改刪除多余的空格


var result = string.Join(Environment.NewLine,

          lines.Select(x => x.Replace(" - ", "-")

               .Split(new char[] { ' '}, StringSplitOptions.RemoveEmptyEntries))

               .Select(x => string.Join(",", x)));


查看完整回答
反對 回復 2022-12-24
?
慕俠2389804

TA貢獻1719條經(jīng)驗 獲得超6個贊

如果您不確定一行中值之間的空格數(shù),請嘗試這個。


RegexOptions options = RegexOptions.None;

Regex regex = new Regex("[ ]{2,}", options);     


string csvline;

foreach (string line in lines)

{

    csvline = regex.Replace(line, ",");

    Console.WriteLine(csvline);

}

如果你確定你只有一個,你可以


string csvline;

foreach (string csvline in lines){

        csvline = line.Replace(' ', ',');

        Console.WriteLine(csvline);

}


查看完整回答
反對 回復 2022-12-24
?
MM們

TA貢獻1886條經(jīng)驗 獲得超2個贊

很難準確地說出您在這里要求的是什么,所以我的回答會非常含糊。

對于分隔文件,您將分隔某種類型的值,因此我將不得不對這些值是什么做出一些假設。String.Join函數(shù)可能正是您在那里尋找的。它產(chǎn)生一個字符串輸出,它是用指定分隔符連接的對象數(shù)組的產(chǎn)物。(例如 [1,2,3] => "1,2,3")

至于將輸出寫入文件,您需要的功能類似于您用來讀取文件的功能。File 對象有一個WriteAllText函數(shù),它將生成一個包含給定文本(作為字符串)的文本文件,或者File.WriteAllLines將有類似的結(jié)果,但帶有一個字符串數(shù)組。


查看完整回答
反對 回復 2022-12-24
  • 4 回答
  • 0 關(guān)注
  • 105 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號