Follow

Ich find das bei Luka ja schon lustig... gitlab.com/lucaapp/web/-/blob/

Das war der erste Versuch für einen Input-Sanitzer. Highlights:
- Entfernt das @ aus E-Mails
- Macht Namen wie "Frommer" zu " mer"
- Macht E-Mails wie "foübar@dropmail.org" zu "foobar@ mail.org"
- Sehr seltsame Rekursion am Schluss, die nie aufgerufen wird, weil das erste Regex schon alle @=-\t wegräumt.

Macht da niemand ein Code-Review bei denen?

Der zweite Versuch ist immerhin marginal besser:
gitlab.com/lucaapp/web/-/blob/

· · Web · 3 · 1 · 5

@sebastian Was mich dabei wundert ist ja, dass input-sanitzing echt nichts neues ist und man das eigentlich auch nicht immer wieder neu programmieren müsste.
o.O

@alsternerd Das kommt erschwerend hinzu. Aber eigentlich ist das ja kein Input-Sanitising. Das ist Output-Sanitizing. Es wird aufgerufen wenn die CSV/Excel-Dateien zusammen gebaut werden und auch nur dort.

gitlab.com/lucaapp/web/-/commi

Ich bin ja jetzt auch kein Experte für Office-Tabellen-Geschubse, aber in der Regel wird doch ein CSV Feld mit " drum herum als String interpretiert. Würde es dann nicht reicht alle " zu entfernen und beim Output jedes String-Feld als "Foobar" zu speichern?

@alsternerd Okay State of the Art ist wohl sämtliche tab Zeichen aus dem Feld zu löschen und entweder ein einzelnes ' oder einen space vorne dran zu hängen. Sagen zumindest meine 10 Minuten googlen und das klingt sogar sinnvoll.

@sebastian Klingt es. Aber das säubern wäre ja eigentlich schon beim Input aus den entschlüsselten Daten wichtig, nciht erst beim Speichern als csv.

Und warum zum Henker kann man in einer CSV Excel-Makros hinterlegen, die Excel auch noch fröhlich mitnimmt. o.O

@sebastian Aber ja, so kenne ich das auch bei CSV, jedenfalls mit " und '.
Aber da geht ja einiges.

@alsternerd Der andere Ansatz wäre halt gewesen sich eine library für den CSV und Excel output zu suchen. Kurzes googeln ergab, das die meisten populären Lösungen die es gibt eigene Lösungen für genau das Problem mitbringen. Die kommen meist aus dem Datascience/Datamining-Bereich und da will man meistens genau das in der Zelle haben was man da rein schreibt und nicht was Excel darüber denkt.
Und die fertigen Lösungen sind vermutlich auch besser getestet.

@alsternerd Warum Excel das falsch macht ist schnell erklärt: Im traditionellen Datenmodell von Excel kann eine Zelle zwei Dinge enthalten. Eine Zahl oder einen String. Wenn es ein String ist versucht es den irgendwie fancy zu interpretieren... Datum, Hyperlink, Formel und fällt im Zweifel zurück auf String.
CSV wird jetzt einfach als eine Menge Zellen behandelt.

Excel war halt nie dafür gedacht Files aus dubiosen Quellen auf zu machen.

@sebastian finde ja auch das Replacen von SQL Keywords irgendwie shady...

@sebastian Seh ich das richtig, dass auch der zweite Versuch noch alle @s im String ersetze und die Mailadresse dann halt foo_bar.com wird? Der Kommentar sagt zwar, dass es nur ums erste Zeichen geht, sie rufen aber ein replaceAll auf dem gesamten String auf.

@psy Öhm aber das Regex startet doch mit ^ und das match auf den Anfang vom String.

regex101.com/r/IQH56q/1/

Sieht für mich jetzt sinnig aus. Außer replaceAll tut was anderes als Ich da erwarte.

@sebastian Oh, das hab ich übersehen, hast du vollkommen Recht! :D

@psy Würde auch erwarten, dass irgendjemand zumindest den zweiten Anlauf auch mal ausprobiert hat, bevor der als getaggtes Release zur Tür raus ging.

@sebastian @psy Nee, es war eilig, der Smudo hat schon so gedrängelt...

@psy @sebastian Naja, wenn du kurz das tust, was die offenbar nie machen, nämlich den Codeschnipsel mit einem Schwarm TestStrings durchzuprüfen, sollte das schnell geklärt sein...
Ich frage besser nicht, welchen Test-Framework die dort verwenden...

Sign in to participate in the conversation
chaos.social

chaos.social – a Fediverse instance for & by the Chaos community