Gå til innhold

[Løst] Splitte csv rad nedover i liste


Anbefalte innlegg

Har en .dat fil med regnskapsinformasjon. Hver rad begynner med <32 og ender med <32. Det kommer noe info etter <32 i samme rad, men dette skal ignoreres.

Etter <32 kommer dato, og så forskjellige omsetningstall.

Alt er separert med '

Etter dato ønsker jeg å sette inn et kontonummer som jeg vil definere i filen.

Filen ser slik ut, eksempel:

<32'21.05.2011'3000'150.40'130'200<32hu'tte'23'77'hu

<32'22.05.2011'2400'120.20'22'3980<32hu'tth'76'90'hu

osv nedover.

Hvordan da få dette slik:

21.05.2011,1920,3000

21.05.2011,3100,150.40

21.05.2011,3200,130

21.05.2011,6400,200

22.05.2011,1920,2400

22.05.2011,3100,120.20

22.05.2011,3200,22

22.05.2011,6400,3980

 

Kontoene ønsker jeg å definere i filen, slik at første verdi etter dato skal ha kontonummer 1920, neste skal ha 3100, osv.

Noen som kan hjelpe?

Output filen skal lagres som csv fil for import inn i et regnskapssystem.

 

Håper noen kan hjelpe..

Endret av Megaoctane
Lenke til kommentar
Videoannonse
Annonse

Okæi.

 

Her er et kort program som skal klare jobben for deg.

 

using System;
using System.Text;
using System.Text.RegularExpressions;

namespace ParseDataset
{
class Program
{
	static readonly Regex ParseRegex = new Regex(
		@"^\<32'(?<Data>.*?)<32.*$", RegexOptions.Compiled | RegexOptions.Multiline);
	static void Main(string[] args)
	{
		var input = System.Console.In.ReadToEnd();

		var match = ParseRegex.Match(input);

		while (match.Success)
		{
			Console.Out.WriteLine(match.Groups["Data"].Value.Replace('\'', ','));
			match = match.NextMatch();
		}
	}
}
}

ParseDataset.zip

 

Det funker enkelt nok ved at du piper data fra datasette til programmet, og programmet vil skrive resultatet ut på skjermen.

 

Så du kan starte kommandovindu (cmd) og bla deg frem til mappen dataene ligger i, og skriv noe slikt:

 

type minfil.dat | ParseDataSet.exe > output.txt

  • Liker 1
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...