Ich bin gerade dabei in C# ein tool zu Programmieren was mir auf der Arbeit etwas zeit Erspart.
Und zwar bekommen wir von unserem Arbeitgeber eine .pdf Datei mit dem Arbeitsaufträgen wo wir dann noch per Hand die daten in Trello einpflegen müssen, was ich aber gerne automatisieren möchte.
meine Frage ist :
-Wie kann ich die fettgedruckten werte extrahieren , und ich c# als String Variablen Speichern ?
Das ist nur eine Skizze !
Die Schriftart ist im original konstant und einige Bereiche könnten mehrzeilig sein !
Dann liest du die Textdaten entweder jeweils zeilenweise und überprüfst anhand des Textanfangs (String.StartsWith) und extrahierst dann die passenden Werte (z.B. per IndexOf + String.Substring)), s.a. Methoden der Klasse String.
Wenn die Reihenfolge der Daten immer gleich ist, dann kannst du auch einfach sequentiell vorgehen.
Mein erster Ansatz wäre jetzt Regular Expressions(Regex). Damit kann man schon eine Menge anstellen, was das verarbeiten von Texten/Zeichenketten angeht, damit solltest du auch die Daten aus deiner Datei bekommen.
Falls das PDF rein textuell aufgebaut ist, so kann auch z.B. mittels pdfgrep der Text extrahiert und anschließend von deinem C#-Programm geparst werden.
Da der Export rein textuell ist und gem. deinem Beispiel das recht kanonisch aufgebaut ist, sollte das gehen. Bei den Arbeitern ist der Fettgedruckte auch mit einem x versehen, so dass dies (beim Beispiel zumindest) eindeutig ist.
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
super, wenn du eine Lösung gefunden hast. Noch idealer und im Sinne der Community wäre jedoch, wenn du hier die Lösung auch zeigen könntest.
Falls jemand ein ähnliches Problem hat, so kann er sich daran orientieren.
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
Die Datei solltest du aber besser erst löschen, nachdem die Methode erfolgreich durchlaufen wurde (also wenn keine Exception aufgetreten ist). Oder ist sie nicht so wichtig und kann wiedererzeugt werden?
Falls deine ganzen regulären Ausdrücke tatsächlich nur aus Literalen bestehen und kein regulären Ausdrücke enthalten, brauchst du die Regex Klasse auch nicht.
Statt
string wetter = "wetter: x";
string wetter2 = "wetter: ox";
Regex regexwetter = new Regex(wetter);
Regex regexwetter2 = new Regex(wetter2);
if (regexwetter.IsMatch(s)|regexwetter2.IsMatch(s))
{
ApiRequest apiRequest2 = new ApiRequest();
apiRequest2.PostRequest(Nameof, "pink", Beschreibung, tempTime2);
break;
}
kannst du auch
string wetter = "wetter: x";
string wetter2 = "wetter: ox";
if (s.IndexOf(wetter) ≥ 0 || s.IndexOf(wetter2) ≥ 0)
{
ApiRequest apiRequest2 = new ApiRequest();
apiRequest2.PostRequest(Nameof, "pink", Beschreibung, tempTime2);
break;
}
Hallo, für mich ist etwas verwirrend, dass in der Überschrift von txt die Rede ist, im ersten Beitrag aber plötzlich von pdf und nun wieder von txt. In der Auswertung spielt es dann zwar keine Rolle mehr, aber passt halt irgendwie nicht zusammen.
- Wer lesen kann, ist klar im Vorteil
- Meistens sitzt der Fehler vorm Monitor
- "Geht nicht" ist keine Fehlermeldung!
- "Ich kann programmieren" != "Ich habe den Code bei Google gefunden"