495 lines
22 KiB
C#
495 lines
22 KiB
C#
using BS.Shared.DataContracts;
|
|
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.Perseh
|
|
{
|
|
public class PersehReader
|
|
{
|
|
public HilfeplanImportDC ReadPdfDocument(byte[] daten)
|
|
{
|
|
HilfeplanImportDC result = new HilfeplanImportDC();
|
|
result.Gruppen = new List<HilfeplanImportItemDC>();
|
|
|
|
//var gruppe1 = new HilfeplanImportItemDC { Label = "Leistungssuchende oder leistungsberechtigte Person", Items = new List<HilfeplanImportItemDC>() };
|
|
//gruppe1.Items.Add(new HilfeplanImportItemDC { Label = "Name", Content = "Bäurle", FieldName = "LastName" });
|
|
//gruppe1.Items.Add(new HilfeplanImportItemDC { Label = "Vorname", Content = "Christian", FieldName = "FirstName" });
|
|
//gruppe1.Items.Add(new HilfeplanImportItemDC { Label = "Geburtsdatum", Content = "08.04.1972", FieldName = "Birthdate" });
|
|
//gruppe1.Items.Add(new HilfeplanImportItemDC { Label = "Nationalität", Content = "deutsch" });
|
|
//gruppe1.Items.Add(new HilfeplanImportItemDC { Label = "Beruf", Content = "Wirt" });
|
|
//gruppe1.Items.Add(new HilfeplanImportItemDC { Label = "GP-Nummer/Az", Content = "73.20-2100009313-01" });
|
|
//gruppe1.Items.Add(new HilfeplanImportItemDC { Label = "Erstellt von der\nleistungssuchenden oder\nleistungsberechtigten Person\nmit Behinderung unter", Content = "Max Mustermann (Bezugsbetreuer)\nMaria Musterfrau (Sozialarbeiterin)" });
|
|
|
|
//result.Gruppen.Add(gruppe1);
|
|
|
|
//gruppe1 = new HilfeplanImportItemDC { Label = "Gruppe 2", Items = new List<HilfeplanImportItemDC>() };
|
|
//gruppe1.Items.Add(new HilfeplanImportItemDC { Label = "Name", Content = "Bäurle", FieldName = "LastName" });
|
|
//gruppe1.Items.Add(new HilfeplanImportItemDC { Label = "Vorname", Content = "Christian", FieldName = "FirstName" });
|
|
//gruppe1.Items.Add(new HilfeplanImportItemDC { Label = "Geburtsdatum", Content = "08.04.1972", FieldName = "Birthdate" });
|
|
//gruppe1.Items.Add(new HilfeplanImportItemDC { Label = "Nationalität", Content = "deutsch" });
|
|
//gruppe1.Items.Add(new HilfeplanImportItemDC { Label = "Beruf", Content = "Wirt" });
|
|
//gruppe1.Items.Add(new HilfeplanImportItemDC { Label = "GP-Nummer/Az", Content = "73.20-2100009313-01" });
|
|
//gruppe1.Items.Add(new HilfeplanImportItemDC { Label = "Erstellt von der\nleistungssuchenden oder\nleistungsberechtigten Person\nmit Behinderung unter", Content = "Max Mustermann (Bezugsbetreuer)\nMaria Musterfrau (Sozialarbeiterin)" });
|
|
|
|
//result.Gruppen.Add(gruppe1);
|
|
|
|
|
|
|
|
result.Ziele = new List<HilfeplanImportZielDC>();
|
|
|
|
//result.Ziele.Add(new HilfeplanImportZielDC { Bereich = "Lernen und Wissensanwendung", ZielName = "Ziel 1", ZielBeschreibung = "Herr Sowieso hat eine seinen Bedürfnissen entsprechende und ihn stabilisierende Tagesstruktur mit einer regelmäßigen, genesungsfördernden Beschäftigung(z.B.Ergotherapie) entwickelt." });
|
|
//result.Ziele.Add(new HilfeplanImportZielDC { Bereich = "Lernen und Wissensanwendung", ZielName = "Ziel 2", ZielBeschreibung = "Herr Sowieso hat Angstbewältigungsstrategien sowie Stabilisierungstechniken erlernt und kann diese in Alltagssituationen anwenden" });
|
|
|
|
//result.Ziele.Add(new HilfeplanImportZielDC { Bereich = "Allgemeine Aufgaben und Anforderungen", ZielName = "Ziel 1", ZielBeschreibung = "Herr Sowieso hat eine seinen Bedürfnissen entsprechende und ihn stabilisierende Tagesstruktur mit einer regelmäßigen, genesungsfördernden Beschäftigung(z.B.Ergotherapie) entwickelt." });
|
|
//result.Ziele.Add(new HilfeplanImportZielDC { Bereich = "Allgemeine Aufgaben und Anforderungen", ZielName = "Ziel 2", ZielBeschreibung = "Herr Sowieso hat Angstbewältigungsstrategien sowie Stabilisierungstechniken erlernt und kann diese in Alltagssituationen anwenden" });
|
|
|
|
using (var processor = new PdfDocumentProcessor())
|
|
{
|
|
using (var ms = new MemoryStream(daten))
|
|
{
|
|
processor.LoadDocument(ms);
|
|
|
|
var pdfText = processor.Text;
|
|
|
|
var customerGruppe = ErstelleKlientenStammdatenGruppe(pdfText);
|
|
|
|
if (customerGruppe == null)
|
|
{
|
|
customerGruppe = ErstelleGruppeMitNamenUndAktenzeichen(pdfText);
|
|
}
|
|
if (customerGruppe != null)
|
|
{
|
|
result.Gruppen.Add(customerGruppe);
|
|
}
|
|
|
|
result.Ziele = ErstelleAlleZiele(pdfText);
|
|
}
|
|
}
|
|
|
|
//result.Ziele = new List<HilfeplanImportZielDC>();
|
|
|
|
//result.Ziele.Add(new HilfeplanImportZielDC { Bereich = "Lernen und Wissensanwendung", ZielName = "Ziel 1", ZielBeschreibung = "Herr Sowieso hat eine seinen Bedürfnissen entsprechende und ihn stabilisierende Tagesstruktur mit einer regelmäßigen, genesungsfördernden Beschäftigung(z.B.Ergotherapie) entwickelt." });
|
|
//result.Ziele.Add(new HilfeplanImportZielDC { Bereich = "Lernen und Wissensanwendung", ZielName = "Ziel 2", ZielBeschreibung = "Herr Sowieso hat Angstbewältigungsstrategien sowie Stabilisierungstechniken erlernt und kann diese in Alltagssituationen anwenden" });
|
|
|
|
//result.Ziele.Add(new HilfeplanImportZielDC { Bereich = "Allgemeine Aufgaben und Anforderungen", ZielName = "Ziel 1", ZielBeschreibung = "Herr Sowieso hat eine seinen Bedürfnissen entsprechende und ihn stabilisierende Tagesstruktur mit einer regelmäßigen, genesungsfördernden Beschäftigung(z.B.Ergotherapie) entwickelt." });
|
|
//result.Ziele.Add(new HilfeplanImportZielDC { Bereich = "Allgemeine Aufgaben und Anforderungen", ZielName = "Ziel 2", ZielBeschreibung = "Herr Sowieso hat Angstbewältigungsstrategien sowie Stabilisierungstechniken erlernt und kann diese in Alltagssituationen anwenden" });
|
|
|
|
|
|
return result;
|
|
}
|
|
|
|
private IList<HilfeplanImportZielDC> ErstelleAlleZiele(string pdfText)
|
|
{
|
|
var ziele = new List<HilfeplanImportZielDC>();
|
|
//Suche Zeile "Zielplanung". So beginnt hinten im Dokument der Bereich mit der Zusammenfassung der Ziele
|
|
|
|
var zeilen = pdfText.Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);
|
|
var startIdx = -1;
|
|
var endIdx = -1;
|
|
var zielplanungStart = -1;
|
|
StringBuilder gesamtTextMitZielen = new StringBuilder();
|
|
|
|
for (int i = zeilen.Length - 1; i >= 0; i--)
|
|
{
|
|
var z = zeilen[i];
|
|
|
|
if (z == "Zielplanung")
|
|
{
|
|
zielplanungStart = i;
|
|
startIdx = i;
|
|
}
|
|
if (z.StartsWith("Übersicht der Leistungsplanung "))
|
|
{
|
|
endIdx = i;
|
|
}
|
|
}
|
|
if (endIdx < startIdx)
|
|
{
|
|
for (int i = zeilen.Length - 1; i >= 0; i--)
|
|
{
|
|
var z = zeilen[i];
|
|
if (z.StartsWith("Gesamtübersicht Stunden pro Woche"))
|
|
{
|
|
endIdx = i;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
if (startIdx >= 0)
|
|
{
|
|
for (int i = startIdx; i < endIdx; i++)
|
|
{
|
|
gesamtTextMitZielen.AppendLine(zeilen[i]);
|
|
}
|
|
zeilen = gesamtTextMitZielen.ToString().Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);
|
|
|
|
startIdx = 0;
|
|
while (startIdx >= 0)
|
|
{
|
|
var ta = TextAbschnittReader.LeseBisText(zeilen, startIdx, "Lebensbereich ", true, false, false);
|
|
if (ta.Success)
|
|
{
|
|
ziele.AddRange(ErstelleBereichMitZielen(zeilen, ta));
|
|
startIdx = ta.ZeilenIndex + 1;
|
|
}
|
|
else
|
|
{
|
|
startIdx = -1;
|
|
}
|
|
|
|
}
|
|
}
|
|
ErstelleMassnahmen(pdfText, zielplanungStart, ziele);
|
|
|
|
return ziele;
|
|
|
|
}
|
|
|
|
private void ErstelleMassnahmen(string pdfText, int endIndex, List<HilfeplanImportZielDC> ziele)
|
|
{
|
|
var zeilen = pdfText.ToString().Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);
|
|
|
|
foreach (var item in ziele)
|
|
{
|
|
item.Massnahmen = new List<HilfeplanImportZielDC>();
|
|
|
|
int zeilenIndex = 0;
|
|
foreach (var zeile in zeilen)
|
|
{
|
|
if (zeilenIndex < endIndex && zeile.StartsWith("Ziel "))
|
|
{
|
|
if (item.ZielName.StartsWith(zeile.Substring(5)))
|
|
{
|
|
int massnahmenStartIndex = -1;
|
|
var ta = TextAbschnittReader.LeseBisText(zeilen, zeilenIndex, "Beschreibung der Maßnahme", true, false, false);
|
|
if (ta.Success)
|
|
{
|
|
massnahmenStartIndex = ta.ZeilenIndex;
|
|
}
|
|
else
|
|
{
|
|
ta = TextAbschnittReader.LeseBisText(zeilen, ta.ZeilenIndex + 1, "Beschreibung der", true, false, false);
|
|
if (ta.Success)
|
|
{
|
|
var ta2 = TextAbschnittReader.LeseBisText(zeilen, ta.ZeilenIndex + 1, "Maßnahme", true, false, false);
|
|
if (ta2.Success && ta2.ZeilenIndex == ta.ZeilenIndex + 1)
|
|
{
|
|
massnahmenStartIndex = ta2.ZeilenIndex;
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
if (massnahmenStartIndex > 0)
|
|
{
|
|
ta = TextAbschnittReader.LeseBisText(zeilen, massnahmenStartIndex, "Wer soll das tun?", true, false, false);
|
|
|
|
if (ta.Success)
|
|
{
|
|
var text = ta.Text;
|
|
|
|
ErstelleMassnahmenFuerZiel(item, text);
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
zeilenIndex++;
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
|
|
public virtual void ErstelleMassnahmenFuerZiel(HilfeplanImportZielDC item, string text)
|
|
{
|
|
var zeilen = text.Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);
|
|
var sb = new StringBuilder();
|
|
|
|
//Entferne Zeilenumbrüche und unnötige Zeilen (wie Kopf und Fußzeilen)
|
|
//Letzte Zeile nicht mitnehmen, da steht drin "wer soll das tun?"
|
|
for (int i = 0; i < zeilen.Length - 1; i++)
|
|
{
|
|
String zeile = zeilen[i];
|
|
if (i == 0)
|
|
{
|
|
if (zeile.StartsWith("Beschreibung der Maßnahmen"))
|
|
{
|
|
zeile = zeile.Substring(26);
|
|
}
|
|
else if (zeile.StartsWith("Beschreibung der Maßnahme"))
|
|
{
|
|
zeile = zeile.Substring(25);
|
|
}
|
|
if (zeile.StartsWith("Maßnahmen"))
|
|
{
|
|
zeile = zeile.Substring(9);
|
|
}
|
|
else if (zeile.StartsWith("Maßnahme"))
|
|
{
|
|
zeile = zeile.Substring(8);
|
|
}
|
|
zeile = zeile.Trim();
|
|
}
|
|
|
|
if (!String.IsNullOrWhiteSpace(zeile) && !IgnoriereZeile(zeile))
|
|
{
|
|
sb.Append(zeile);
|
|
sb.Append(" ");
|
|
}
|
|
}
|
|
|
|
item.Massnahmen = ErstelleMassnahmenDCs(sb.ToString());
|
|
}
|
|
|
|
public virtual IList<HilfeplanImportZielDC> ErstelleMassnahmenDCs(string text)
|
|
{
|
|
var result = new List<HilfeplanImportZielDC>();
|
|
|
|
//Finde Auflistung die mit einer Zahl und einem Punkt beginnen (1. erste Zeile, 2. zweite Zeile etc.)
|
|
if (!String.IsNullOrEmpty(text) && text.StartsWith("1. "))
|
|
{
|
|
string pattern = @"(\d+\.\s.*?)(?=\s*\d+\.\s|$)";
|
|
|
|
MatchCollection matches = Regex.Matches(text, pattern);
|
|
|
|
var sb = new StringBuilder();
|
|
foreach (var match in matches)
|
|
{
|
|
sb.AppendLine(match.ToString());
|
|
}
|
|
|
|
var massnahme = new HilfeplanImportZielDC();
|
|
massnahme.DoImport = true;
|
|
massnahme.ZielName = sb.ToString();
|
|
|
|
result.Add(massnahme);
|
|
}
|
|
if (result.Count == 0 && !String.IsNullOrEmpty(text))
|
|
{
|
|
var massnahme = new HilfeplanImportZielDC();
|
|
massnahme.DoImport = true;
|
|
massnahme.ZielName = text;
|
|
|
|
result.Add(massnahme);
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
private IList<HilfeplanImportZielDC> ErstelleBereichMitZielen(string[] zeilen, TextAbschnitt ta)
|
|
{
|
|
var ziele = new List<HilfeplanImportZielDC>();
|
|
|
|
String bereich = zeilen[ta.ZeilenIndex];
|
|
int idxBereichStart = ta.ZeilenIndex + 1;
|
|
int idxBereichtEnde = zeilen.Length;
|
|
|
|
var taEnde = TextAbschnittReader.LeseBisText(zeilen, ta.ZeilenIndex + 1, "Lebensbereich ", true, false, false);
|
|
if (taEnde.Success)
|
|
{
|
|
idxBereichtEnde = taEnde.ZeilenIndex;
|
|
}
|
|
|
|
HilfeplanImportZielDC ziel = null;
|
|
for (int i = idxBereichStart; i < idxBereichtEnde; i++)
|
|
{
|
|
String zeile = zeilen[i];
|
|
if (zeile.StartsWith("Ziele • ") || zeile.StartsWith("• "))
|
|
{
|
|
ziel = new HilfeplanImportZielDC();
|
|
ziel.DoImport = true;
|
|
ziel.Bereich = bereich;
|
|
ziel.ZielName = zeile.Replace("Ziele • ", "").Replace("• ", "").Trim();
|
|
|
|
ziele.Add(ziel);
|
|
}
|
|
else if (ziel != null)
|
|
{
|
|
if (!IgnoriereZeile(zeile))
|
|
{
|
|
ziel.ZielName += " " + zeile.Trim();
|
|
ziel.ZielBeschreibung = "Beschreibung:\n" + zeile;
|
|
}
|
|
|
|
}
|
|
}
|
|
return ziele;
|
|
}
|
|
|
|
private bool IgnoriereZeile(string zeile)
|
|
{
|
|
if (zeile.StartsWith("(c) Landschaftsverband") || zeile.StartsWith("Gesprächsleitfaden - "))
|
|
{
|
|
return true;
|
|
}
|
|
if (zeile.StartsWith("V1") || zeile.StartsWith("V2") || zeile.StartsWith("V3"))
|
|
{
|
|
return true;
|
|
}
|
|
//Ignoriert das Aktenzeichen
|
|
if (StartetMitNZiffern(zeile, 10))
|
|
{
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
private bool StartetMitNZiffern(string zeile, int anzahlZiffern)
|
|
{
|
|
string pattern = String.Format("{0:0}", anzahlZiffern);
|
|
pattern = "\\d{" + pattern + "}";
|
|
MatchCollection matches = Regex.Matches(zeile, pattern);
|
|
|
|
if (matches.Count > 0 && matches[0].Index == 0)
|
|
{
|
|
return true;
|
|
|
|
}
|
|
return false;
|
|
}
|
|
|
|
private HilfeplanImportItemDC ErstelleKlientenStammdatenGruppe(string pdfText)
|
|
{
|
|
if (pdfText.Contains("Individuelle Bedarfsermittlung - Element Basisdaten"))
|
|
{
|
|
var customerGruppe = new HilfeplanImportItemDC { Label = "Stammdaten", Items = new List<HilfeplanImportItemDC>() };
|
|
customerGruppe.Items = LeseKlientenStammdaten(pdfText);
|
|
|
|
return customerGruppe;
|
|
|
|
}
|
|
return null;
|
|
}
|
|
|
|
private HilfeplanImportItemDC ErstelleGruppeMitNamenUndAktenzeichen(string pdfText)
|
|
{
|
|
String aktenzeichen = "";
|
|
String name = "";
|
|
String datum = "";
|
|
|
|
var zeilen = pdfText.Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);
|
|
|
|
//Der Name sollte oben auf der ersten Seite stehen. Suche innerhalb der ersten 10 Zeilen danach:
|
|
var ta = TextAbschnittReader.LeseBisText(zeilen, 0, "Name ", true, false, false);
|
|
if (ta.Success && ta.ZeilenIndex <= 10)
|
|
{
|
|
|
|
var zeile = zeilen[ta.ZeilenIndex].Replace("Name ", "");
|
|
|
|
if (zeile.Contains("GP-Nr./Az. "))
|
|
{
|
|
aktenzeichen = zeile.Substring(zeile.IndexOf("GP-Nr./Az. ") + 10).Trim();
|
|
}
|
|
var pattern = @"\d{2}\.\d{2}\.\d{4}";
|
|
MatchCollection matches = Regex.Matches(zeile, pattern);
|
|
|
|
|
|
if (matches.Count > 0)
|
|
{
|
|
|
|
datum = matches[0].Value;
|
|
|
|
if (zeile.IndexOf(datum) > 0)
|
|
{
|
|
name = zeile.Substring(0, zeile.IndexOf(datum)).Trim();
|
|
}
|
|
}
|
|
}
|
|
|
|
if (String.IsNullOrEmpty(aktenzeichen))
|
|
{
|
|
var pattern = @"\d{10}";
|
|
MatchCollection matches = Regex.Matches(pdfText, pattern);
|
|
|
|
if (matches.Count > 0)
|
|
{
|
|
|
|
aktenzeichen = matches[0].Value;
|
|
}
|
|
}
|
|
|
|
if (!String.IsNullOrEmpty(aktenzeichen) || !String.IsNullOrEmpty(name) || !String.IsNullOrEmpty(datum))
|
|
{
|
|
var customerGruppe = new HilfeplanImportItemDC { Label = "Stammdaten", Items = new List<HilfeplanImportItemDC>() };
|
|
|
|
if (!String.IsNullOrEmpty(name))
|
|
{
|
|
customerGruppe.Items.Add(new HilfeplanImportItemDC { Label = "Name", FieldName = "LastnameFirstname", Content = name });
|
|
}
|
|
if (!String.IsNullOrEmpty(datum))
|
|
{
|
|
customerGruppe.Items.Add(new HilfeplanImportItemDC { Label = "Geburtsdatum", FieldName = "Birthdate", Content = datum });
|
|
}
|
|
if (!String.IsNullOrEmpty(aktenzeichen))
|
|
{
|
|
customerGruppe.Items.Add(new HilfeplanImportItemDC { Label = "GP-Nummer/Az", FieldName = "CustomerReferenceNumber", Content = aktenzeichen });
|
|
}
|
|
return customerGruppe;
|
|
|
|
}
|
|
return null;
|
|
}
|
|
|
|
private List<HilfeplanImportItemDC> LeseKlientenStammdaten(string pdfText)
|
|
{
|
|
var liste = new List<HilfeplanImportItemDC>();
|
|
var zeilen = pdfText.Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);
|
|
|
|
var ta = TextAbschnittReader.LeseBisText(zeilen, 0, "BEI_NRW für den Zeitraum vom ", true, false, false);
|
|
|
|
if (ta.Success)
|
|
{
|
|
var idx = ta.ZeilenIndex;
|
|
liste.Add(ErstelleStammdatenFeld("BEI_NRW für den Zeitraum vom", "ApprovalPeriod", zeilen, idx, out idx));
|
|
liste.Add(ErstelleStammdatenFeld("GP-Nummer/Az", "CustomerReferenceNumber", zeilen, idx, out idx));
|
|
liste.Add(ErstelleStammdatenFeld("Name", "Lastname", zeilen, idx, out idx));
|
|
liste.Add(ErstelleStammdatenFeld("Vorname", "Firstname", zeilen, idx, out idx));
|
|
liste.Add(ErstelleStammdatenFeld("Titel", "Titel", zeilen, idx, out idx));
|
|
liste.Add(ErstelleStammdatenFeld("Geburtsdatum", "Birthdate", zeilen, idx, out idx));
|
|
liste.Add(ErstelleStammdatenFeld("Geschlecht", "Sex", zeilen, idx, out idx));
|
|
liste.Add(ErstelleStammdatenFeld("Nationalität", "Nationality", zeilen, idx, out idx));
|
|
liste.Add(ErstelleStammdatenFeld("Beruf", "Job", zeilen, idx, out idx));
|
|
liste.Add(ErstelleStammdatenFeld("Familienstand", "FamilyStatus", zeilen, idx, out idx));
|
|
liste.Add(ErstelleStammdatenFeld("Anzahl und Alter der Kinder", "Children", zeilen, idx, out idx));
|
|
liste.Add(ErstelleStammdatenFeld("PLZ", "PostalCode", zeilen, idx, out idx));
|
|
liste.Add(ErstelleStammdatenFeld("Ort", "Town", zeilen, idx, out idx));
|
|
liste.Add(ErstelleStammdatenFeld("Straße", "Street", zeilen, idx, out idx));
|
|
liste.Add(ErstelleStammdatenFeld("Telefon", "Phone", zeilen, idx, out idx));
|
|
liste.Add(ErstelleStammdatenFeld("Fax", "Fax", zeilen, idx, out idx));
|
|
liste.Add(ErstelleStammdatenFeld("E-Mail", "EMail", zeilen, idx, out idx));
|
|
}
|
|
|
|
|
|
|
|
return liste;
|
|
}
|
|
|
|
private HilfeplanImportItemDC ErstelleStammdatenFeld(string label, string fieldname, string[] zeilen, int startIndex, out int foundIdx)
|
|
{
|
|
var item = new HilfeplanImportItemDC { Label = label, FieldName = fieldname };
|
|
|
|
var ta = TextAbschnittReader.LeseBisText(zeilen, startIndex, label, true, false, false);
|
|
foundIdx = 0;
|
|
if (ta.Success)
|
|
{
|
|
item.Content = zeilen[ta.ZeilenIndex].Replace(label, "").Trim();
|
|
if (item.Label.Contains("_"))
|
|
{
|
|
item.Label = label.Replace("_", "__");
|
|
}
|
|
foundIdx = ta.ZeilenIndex;
|
|
}
|
|
return item;
|
|
}
|
|
|
|
}
|
|
}
|