Files
BeWoPlaner/Service/Import/AvisImport/LvrAvisTextAbschnitt.cs

95 lines
2.6 KiB
C#

using DevExpress.Pdf;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
namespace BeWo.Service.Import.AvisImport
{
public class LvrAvisTextAbschnitt
{
public String Text { get; set; }
public int ZeilenIndex { get; set; }
public bool Success { get; set; }
public static LvrAvisTextAbschnitt LeseBisText(string[] lines, int index, String suchText)
{
var ta = new LvrAvisTextAbschnitt();
StringBuilder sb = new StringBuilder();
ta.ZeilenIndex = index;
while (index < lines.Length)
{
String line = lines[index];
sb.AppendLine(line);
if (line.Contains(suchText))
{
ta.Success = true;
ta.ZeilenIndex = index;
ta.Text = sb.ToString();
return ta;
}
index++;
}
return ta;
}
public static LvrAvisTextAbschnitt LeseBisDatum(string[] lines, int index, bool addDatumsZeile)
{
var ta = new LvrAvisTextAbschnitt();
StringBuilder sb = new StringBuilder();
while (index < lines.Length)
{
var line = lines[index];
if (line.Length >= 7 && DateTime.TryParse(line.Substring(0, 7), out var d1))
{
//Datum gefunden, lese Daten aus den vorherigen Zeilen
if (addDatumsZeile)
{
sb.AppendLine(line);
}
ta.Success = true;
ta.ZeilenIndex = index;
ta.Text = sb.ToString();
return ta;
}
sb.AppendLine(line);
index++;
}
return ta;
}
public static decimal? LeseBetrag(string zeile)
{
String euroZeile = zeile;
if (euroZeile.IndexOf("€") > 0)
{
euroZeile = euroZeile.Substring(0, euroZeile.IndexOf("€")).Trim();
if (euroZeile.LastIndexOf(" ") > 0)
{
euroZeile = euroZeile.Substring(euroZeile.LastIndexOf(" ")).Trim();
}
if (Decimal.TryParse(euroZeile, out var betrag))
{
return betrag;
}
}
return null;
}
}
}