[fix:] csv-import now recognizes quotation marks

This commit is contained in:
2026-04-16 12:49:45 +02:00
parent ac7b23cc28
commit 5ccd4a4e99
2 changed files with 81 additions and 31 deletions
+39 -27
View File
@@ -1,4 +1,5 @@
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Logof_Client;
@@ -30,34 +31,45 @@ public class CsvBuilder
result.AppendLine(Header);
foreach (var l in KasAddressList.KasPersons)
result.AppendLine(
l.refsid + Separator +
l.anrede + Separator +
l.titel + Separator +
l.vorname + Separator +
l.adel + Separator +
l.name + Separator +
l.namezus + Separator +
l.anredzus + Separator +
l.strasse + Separator +
l.strasse2 + Separator +
l.plz + Separator +
l.ort + Separator +
l.land + Separator +
l.pplz + Separator +
l.postfach + Separator +
l.name1 + Separator +
l.name2 + Separator +
l.name3 + Separator +
l.name4 + Separator +
l.name5 + Separator +
l.funktion + Separator +
l.funktion2 + Separator +
l.abteilung + Separator +
l.funktionad);
result.AppendLine(string.Join(Separator, new[]
{
EscapeCsvField(l.refsid.ToString()),
EscapeCsvField(l.anrede),
EscapeCsvField(l.titel),
EscapeCsvField(l.vorname),
EscapeCsvField(l.adel),
EscapeCsvField(l.name),
EscapeCsvField(l.namezus),
EscapeCsvField(l.anredzus),
EscapeCsvField(l.strasse),
EscapeCsvField(l.strasse2),
EscapeCsvField(l.plz),
EscapeCsvField(l.ort),
EscapeCsvField(l.land),
EscapeCsvField(l.pplz),
EscapeCsvField(l.postfach),
EscapeCsvField(l.name1),
EscapeCsvField(l.name2),
EscapeCsvField(l.name3),
EscapeCsvField(l.name4),
EscapeCsvField(l.name5),
EscapeCsvField(l.funktion),
EscapeCsvField(l.funktion2),
EscapeCsvField(l.abteilung),
EscapeCsvField(l.funktionad)
}));
// weitere Cases
return result.ToString();
}
}
private string EscapeCsvField(string? value)
{
var field = value ?? string.Empty;
var mustQuote = field.Contains(Separator) || field.Contains('"') || field.Contains('\r') || field.Contains('\n');
if (!mustQuote)
return field;
return "\"" + field.Replace("\"", "\"\"") + "\"";
}
}