Delphi-PRAXiS
Seite 5 von 5   « Erste     345   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi CSV anpassen (https://www.delphipraxis.net/206659-csv-anpassen.html)

Delphi.Narium 26. Jan 2021 18:17

AW: CSV anpassen
 
Das zu suchende ganze Wort ist mit vermutlich gefolgt von 'nem Leerzeichen und 'nem Doppelpunkt, meist wohl auch ein Leerzeichen davor.

julchen 26. Jan 2021 19:47

AW: CSV anpassen
 
Mittermeier läuft :-D :thumb:

Wenigstens ein bisschen Glück heute Abend. :wink:

himitsu 26. Jan 2021 20:18

AW: CSV anpassen
 
Mit RegEx kann man einmal "einfacher" komplexere Trennstrukturen definieren -> für Splittfunktionen, Stück für Stück von vorne das zerlegen und/oder mittendrin suchen,
oder man zerlegt damit gleich alles und lässt sich je Zeile die gewünschten Dinge als Gruppe liefern.

https://regex101.com/r/KmWkd8/5
Gruppe 9/10 sollten hier leer bleiben, außer eine Zeile wurde garnicht, bzw. nicht richtig gelesen.

Grundsätzlich kann man so die Gruppen nun nehmen und in die jeweiligen Spalten der CSV übertragen.
Oder man nimmt es für ein RegEx-Replace und führt es per Substitution via
Delphi-Quellcode:
$1;$2;$4;$5;$6;$7;$8
als CSV zusammen.

z.B. #...#gm (Multiline)
Code:
^(Herr|Frau)? *((:?Dr\. |Prof\. |Dipl\.-Ing\. |med\. |rer\. |nat\. )*)?(.*)(?:, )?(.*)? mit (.+)/([A-Z0-9]{3}) \(([0-9]+)\): Terminplan\(([0-9]{2}:[0-9]{2})\ Uhr\)(.*)$|^(.*)$
bzw. #...#gmx (Multiline eXtended)
Code:
^
(Herr|Frau)?\s*
((:?
Dr\.\s
|Prof\.\s
|Dipl\.-Ing\.\s
|med\.\s
|rer\.\s
|nat\.\s
)*)
(.*)
\smit\s
(.+)/([A-Z0-9]{3})\s\(([0-9]+)\):
\sTerminplan
\(([0-9]{2}:[0-9]{2})\sUhr\)
(.*)
$
|
^(.*)$
mit
Code:
Herr Mustermann1 mit ABCDEFGHI/00A (1): Terminplan(08:00 Uhr)
Herr Mustermann2, Max mit ABCDEFGHI/00A (1): Terminplan(08:00 Uhr)
Herr Dr. Mustermann3 mit ABCDEFGHI/00A (1): Terminplan(08:00 Uhr)
Herr Dr. Mustermann4, Max mit ABCDEFGHI/00A (1): Terminplan(08:00 Uhr)
Herr Prof. Dr. Mustermann5 mit ABCDEFGHI/00A (1): Terminplan(08:00 Uhr)
Herr Prof. Dr. Mustermann6, Max mit ABCDEFGHI/00A (1): Terminplan(08:00 Uhr)
Herr Prof. Dr. rer. nat. Mustermann7, Max mit ABCDEFGHI/00A (1): Terminplan(08:00 Uhr)
Herr Prof. Dr. Dipl.-Ing. Hummel, Johann-Nepomuk mit ABCDEFGHI/00A (1): Terminplan(08:00 Uhr)
Frau Dr. Wespe, Natalie mit ABCDEFGHI/00A (1): Terminplan(08:00 Uhr)
Frau Dr. med. Müller-Lüdenscheid, Cleopatra mit Julius Cäsar/00A (1): Terminplan(08:00 Uhr)
Herr van Gogh, Vincent Willem mit Gustav Klimt/00A (1): Terminplan(08:00 Uhr)
Herr Wells, H. G. mit Böll, Heinrich/00A (1): Terminplan(08:00 Uhr)

[edit]
Delphi-Quellcode:
(?:, )?(.*)?
funktioniert so nicht.
Den Teil kann man auch weglassen ... war so geplant, dass
Delphi-Quellcode:
Nachname, Vorname
getrennt wird. (der Vorname steht aktuell in der Nachname-Gruppe mit drin)
Wenn es funktioniert, dann könnte man auch beim zweiten Namen noch soeine Trennung einfügen.

Und
Delphi-Quellcode:
Dipl.-Ing. und rer. nat.
fehlen auch noch, bei den Titeln. (dieser Titel rutscht daher aktuell mit in die Name- bzw. Nachname-Gruppe rein)
Irgendwas stimmt da auch noch nicht ... irgendwie steht aktuell nur die letzte Angabe in der Gruppe.

Es kann auch nicht schaden das mit den Leerzeichen nochmal bissl zu überarbeiten. (fällt z.B. bei den Titeln in der gezeigten Substitution auf)


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:34 Uhr.
Seite 5 von 5   « Erste     345   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz