Laden...

Wie stelle ich Umlaute in einer CSV richtig dar? Und wie lese ich die Dateinamen ein?

Erstellt von moma-Soft vor 3 Jahren Letzter Beitrag vor 3 Jahren 1.620 Views
M
moma-Soft Themenstarter:in
30 Beiträge seit 2020
vor 3 Jahren
Wie stelle ich Umlaute in einer CSV richtig dar? Und wie lese ich die Dateinamen ein?

Guten Tag,

danke nochmals für bereits erhaltene Informationen. Jetzt habe ich allerdings noch 2 Probleme:


var checked= model.DoneErrorMeterEntrySerialnumbers;
                    var workingList = new List<iem_exampleList>();
                    workingList.Add(new iem_exampleList());
                    foreach (var example in checked)
                    {                       
                        if (!String.IsNullOrEmpty(meter))
                        {
                            var addItem = db.iem_exampleList.Where(x => x.serialnumber == example).FirstOrDefault();
                            addItem.processing = addItem.processing + "\n";
                            workingList.Add(addItem);
                        }
                    }
                    string filePath = @"beispielPath\beispiel.csv"; 
                    using (var writer = new StreamWriter(filePath))
                    using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture))
                    {                        
                        var header = new classForHeader();
                        csv.Configuration.Delimiter = ";";  
                        csv.WriteRecord<classForHeader>(header);
                        csv.WriteRecords(workingList);
                        
                    }

  1. Wie kann ich Umlaute und scharfe s in der CSV Datei normal darstellen? ist das überhaupt möglich? Wenn ja, bitte ich um Informationen, wie, da ich es nach langer Recherche nicht fand.

  2. Ein weiteres Problem wäre noch: Wie ist es möglich, alle vorhandenen csv-Dateibezeichnungen zu erhalten? Damit alte Dateien nicht immer automatisch überschrieben werden und einfach die Dokumente fortlaufend gekennzeichnet sind?

Danke im Voraus für die Rückmeldungen.

MbG

3.825 Beiträge seit 2006
vor 3 Jahren

"Normal" gibt es nicht.

Die Umlaute sind Sonderzeichen und werden kodiert. Dafür gibt es verschiedene Zeichensätze. Die kann man im StreamWriter angeben.

Es gibt :


Encoding.GetEncoding(850)                     // MS-DOS ASCII Zeichensatz
Encoding.GetEncoding(1252)                   // Windows ANSI Zeichensatz
Encoding.UTF8                               // Universeller Zeichensatz, Standard bei .NET

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3

16.807 Beiträge seit 2008
vor 3 Jahren

Es wäre ganz nett, wenn Du Dich beim Schreiben von Themen ein bisschen an [Hinweis] Wie poste ich richtig? orientierst; dass Du eine Frage hast, ist klar: Du befindest schließlich in einem Forum 😉
Ich hab den Titel nun mal angepasst, dass man damit überhaupt was anfangen kann.

Wie kann ich Umlaute und scharfe s in der CSV Datei normal darstellen?

Stichwort: Encoding.

Findest im Forum sicherlich hunderte Treffer zu; auch zu CSV hier im Forum.
Taucht immer wieder auf.

Erster Forentreffer dazu: Wieso werden Umlaute nach dem (De)Serialisieren von CSV-Dateien nicht richtig dargestellt (UTF-7)?

Wie ist es möglich, alle vorhandenen csv-Dateibezeichnungen zu erhalten?

Fragen wie "ist es möglich" können immer, ausnahmslos immer mit Ja beantwortet werden.
Alles nur eine Frage des Aufwands. Daher sind solche Fragen wenig zielführend 😉

In diesem Fall: les doch einfach den Dateiname aus.

M
moma-Soft Themenstarter:in
30 Beiträge seit 2020
vor 3 Jahren

Ok danke mal für eure Rückmeldung, Frage 2 hat sich schon erübrigt und ja da hast du sicher recht Abt =)

Bei Frage 1 ist für mich nur noch die Frage (was ich gerade schon eine Zeit probierte), wo ich den Quellcode hinschreiben sollte, damit das für genau mein Beispiel passt:

  • Las z.B. dass es in dem using nach einem Beistrich angegeben wird bei dem StreamWriter
  • Las auch über einen StreamReader das gleiche, nur dass ich in diesem Fall keinen Reader benötige

Vlt. gibt es ein kleines Beispiel auf meinen Quellcode bezogen.

LG

3.825 Beiträge seit 2006
vor 3 Jahren

Das steht in der Dokumentation zu StreamWriter :


 using (StreamWriter sw = new StreamWriter(file, false, Encoding.UTF8)) ...

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3

M
moma-Soft Themenstarter:in
30 Beiträge seit 2020
vor 3 Jahren

Habe es gerade probiert und funktioniert genauso, wie es sein soll.

Danke vielmals, denn dies ist mir somit klar geworden.

LG

M
moma-Soft Themenstarter:in
30 Beiträge seit 2020
vor 3 Jahren
Berechtigungsproblem

Also ich dachte, da das alles super local funktioniert, dass das Problem gelöst ist. Aber ich kam drauf es fehlt noch folgendes:

  • Was ist wenn das Verzeichnis bestimmte Berechtigungen benötigt, da auf dieses Verzeichnis nur bestimmte Leute zugreifen können

Über AD-Gruppen funktioniert dies in diesem Fall sicher nicht und deshalb ist meine Frage, da eine Fehlermeldung beim Erstellen ausgelöst wird, da es für dieses Verzeichnis noch keine Berechtigungen gibt:

  • Wo muss ich Berechtigungen anfordern, wenn dies durch das SW-Tool gemacht wird? Welcher "User" erledigt das?
  • Welcher User muss foglich dafür die Berechtigungen erhalten? (Wird ws nicht über AD-Gruppe möglich sein)

Bitte nochmals um eure Hilfe.
DANKE

3.825 Beiträge seit 2006
vor 3 Jahren

Eine Berechtigung kann eine Software nicht einrichten. Wenn das ginge bräuchte man keine Berechtigungen.

Das muss immer der Adminstrator der IT einrichten.

Man kann Schreib- und Lesevorgänge immer in einen try-catch Block packen, dann bekommt man immer aussagekräftige Fehlermeldungen.

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3

M
moma-Soft Themenstarter:in
30 Beiträge seit 2020
vor 3 Jahren

Ok danke für die info, weil ich versuchte jetzt noch, es mit Vertrauenseinstellungen zu lösen, mal sehen ob das ev. funktioniert.

Sonst werde ich es eh über einen try-catch Block probieren zu lösen.

LG

M
moma-Soft Themenstarter:in
30 Beiträge seit 2020
vor 3 Jahren

Ok jetzt stell ich mir noch folgende Frage:

  • Laut deiner Antwort erledigt das der IT Admin, was sicher korrekt ist
  • Aber meine Frage dazu jetzt:
    • Welche Servereinstellungen müssen dabei verändert werden?
    • Wie müssen diese verändert werden

Denn das sind die Informationen, die ich weitergeben muss.

DANKE.
LG

16.807 Beiträge seit 2008
vor 3 Jahren

Das kann Dir hier pauschal niemand beantworten, weil niemand hier Deine Umgebung kennt.
Du musst Deinem IT Admin sagen, was Du brauchst und er muss Dir das umsetzen - hier kann Dir das keiner abnehmen.

M
moma-Soft Themenstarter:in
30 Beiträge seit 2020
vor 3 Jahren

Ok, ja stimmt, hast du recht, weil das einzige was ich dazu sagen kann aus dem von mir erstellten IT-Konzept ist:

  1. Es gibt einen IIS Server (.NET Framework 4.5.2 | Entity Framework 6.1.3) für die Web-App

  2. Diese Komponente ist verbunden mit einen LDAP Server (Active Directory)

  3. Ist auch verbunden mit einem SQL Server 2016

  4. und ist schlussendlich verbunden mit dem PC (Anwender)

Würden diese Informationen reichen um die Einstellungsveränderungen definieren zu können?

LG

16.807 Beiträge seit 2008
vor 3 Jahren

Nein, weil keiner hier das Berechtigungssystem eurer IT kennt.
Natürlich können wir sagen, dass man im IIS einen Benutzer hinterlegen kann; aber hilft Dir kaum.

Die IT muss Dir die Rahmenbedingungen geben - nicht wir.

Natürlich kannst Du beratend der IT zur Seite stehen, wie man sowas macht; aber klopf erst mal ab was Dir die IT bietet.
Selten ist man der erste mit so einer Anfrage. Und Vorschläge sind halt meist individuell - und wir kennen die Umgebung nicht.

M
moma-Soft Themenstarter:in
30 Beiträge seit 2020
vor 3 Jahren

Ok, aber danke für die umfangreichen Informationen darüber. 🙂

LG

M
moma-Soft Themenstarter:in
30 Beiträge seit 2020
vor 3 Jahren
Applikationsbenutzer

Meine Vorgehensweise findet nun folgendermaßen statt:

  1. Es wurde ein Applikationsbenutzer angefordert (AD-Benutzer ohne Outlook)

  2. Und jetzt kommt wiederum eine Frage von meiner Seite, wo mir ev. Infos gegeben werden können

2.1) Wo muss der User am IIS-Server hinterlegt werden? Weil es läuft noch eine weitere Web-App auf diesem Server und der Sysuser soll nur für diese Web-App vorhanden sein und nicht für andere

2.2) Anschließend gebe ich dem IT-Admin noch den Link, wo dieser Sysuser eine Berechtigung benötigt

Wenn dies alles richtig eingestellt ist, dann müsste das funktionsfähig sein und somit der Datenexport in csv-Dateien möglich sein.

P
441 Beiträge seit 2014
vor 3 Jahren

Beim IIS ist das Stichwort AppPool. Der AppPool bekommt einen User.

M
moma-Soft Themenstarter:in
30 Beiträge seit 2020
vor 3 Jahren

Ah ok und das bedeutet da gibt es für jede Web-App darauf einen eigenen AppPool? Damit diese nicht auf andere Apps die auch auf dem Server sind einwirken.

16.807 Beiträge seit 2008
vor 3 Jahren

Les Dir einfach mal die Doku dazu durch; das würde Dir schon 90% der Fragen beantworten, und das viel schneller, als es ein Forum kann.

Ah ok und das bedeutet da gibt es für jede Web-App darauf einen eigenen AppPool?

Ja

M
moma-Soft Themenstarter:in
30 Beiträge seit 2020
vor 3 Jahren

Ok dann hört sich das sehr gut an,

werde ich mir auch noch ansehen. Danke

M
moma-Soft Themenstarter:in
30 Beiträge seit 2020
vor 3 Jahren

Hab mir jetzt ein paar Sachen durchgelesen und zu dem Entschluss gekommen, mir mal local so einen user zu konfigurieren (am Notebook)

  • Da weis i allerdings noch nicht, mach ich das im Visual Studio? Ws. nicht, da es ja auf den IIS-Server bezogen ist, wenn ich recht habe, wie und wo mach ich das?

  • Welche Einstellungskriterien muss ich dabei berücksichtigen?

  • Wie kann ich das local testen ob es funktionsfähig ist bzw. was muss ich einstellen für:
    => Alles was durch ein Softwaretool (MVC) wird von diesem User durchgeführt
    => Wo stellt man die Berechtigungen für diesen Benutzer ein?
    => Wo stellt man den Datenzugriff ein? (LESE- und SCHREIBRECHT)
    => Sah schon online was von: Worker Processes und dann View Requests, ...

Vlt weis da ja wer eine Anleitung, wo ich das alles finde oder kann mir eine kurze Anleitung/Vorgehensweise definieren.

DANKE

16.807 Beiträge seit 2008
vor 3 Jahren
  • Da weis i allerdings noch nicht, mach ich das im Visual Studio? Ws. nicht, da es ja auf den IIS-Server bezogen ist, wenn ich recht habe, wie und wo mach ich das?

Im IIS.

Alles, wirklich alles dazu ist in den Microsoft Docs zu finden.
Getting Started with the IIS Manager in IIS

Wenn Du keine Rechte hast, dann musst Du sie Dir holen.
Gewisse Settings kann man mit dem Web Deployment Paket mitgeben.

Beachte den Inhalt in der Warn-Box.

  • Welche Einstellungskriterien muss ich dabei berücksichtigen?

Wir kennen Deine Anforderungen nicht.

Schau Dir an, welche Optionen es gibt.

  • Les Dir durch um zu verstehen, was sie machen
  • Evaluiere, welche Option Deine Software benötigt

Ja das kostet Zeit, aber das ist nun mal Dein Job als Entwickler.

=&gt; Alles was durch ein Softwaretool (MVC) wird von diesem User durchgeführt

Keine Ahnung was ein Software-Tool "MVC" sein soll.

=&gt; Wo stellt man die Berechtigungen für diesen Benutzer ein?

Am Benutzer.

=&gt; Wo stellt man den Datenzugriff ein? (LESE- und SCHREIBRECHT)

Im Dateisystem.

Das hier wird so langsam ein Endlosthread, was nicht im Sinne des Forums ist.
Deine Fragen hier zu IIS haben mittlerweile null mit dem eigentlichen Thema zutun.
[Hinweis] Wie poste ich richtig?

M
moma-Soft Themenstarter:in
30 Beiträge seit 2020
vor 3 Jahren

Da werd ich mich die nächsten Tage hineinlesen.

=> MVC ist eine C# - Model-View-Controller Anwendung (aber es ist sicher nicht relevant welche Art von Anwendung es ist)

Danke für das eingehen auf die einzelnen (kleinen) Fragestellungen und hoffe das wird jetzt alles problemlos funktionieren. =)

Wünsche schon mal schöne Feiertage und Frohe Weihnachten.

LG

T
2.219 Beiträge seit 2008
vor 3 Jahren

MVC ist ein Pattern und kein Anwendungstyp.
Meinst du damit eine WPF Anwendung oder eine Web Anwendung?
Bei WPF ist MVC der Weg um die Anwendung umzusetzen.

T-Virus

Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.

16.807 Beiträge seit 2008
vor 3 Jahren

Bei WPF ist MVC der Weg um die Anwendung umzusetzen.

Denke Du meinst MVVM in diesem Falle, aber MVC ist auch nur eine Variation des MVP Patterns, und der wiederum ist durchaus in WinForrms und WPF anwendbar.

Aber da er von IIS spricht, dann wird er wohl eine ASP.NET MVC Anwendung haben (nicht Core, weil er mit anscheinend mit dem .NET Framework arbeitet).
Insgesamt arbeitet er eher mit alten, bzw. schon abgekündigten Dingen (.NET Framework, ASP MVC, EF 6)...

T
2.219 Beiträge seit 2008
vor 3 Jahren

@Abt
Stimmt, verwechsel ich immer.
Passiert, wenn man nicht aktiv damit arbeitet...

Ansonsten arbeite ich leider auch noch primär mit dem Framework und WebForms.
Wird man leider nicht so leicht los. 😦

Ansonsten sollten alle Fragen gelöst sein oder gibt es noch Bedarf?
Ebenfalls sollte ein Blick in die Dokus auch vieles klären.

Aber sonst wundert es mich doch etwas, dass du eine Web Anwendung entwickelst aber sogut wie 0 Kentnisse von grundlegenden Dingen wie Berechtigungen oder der generellen Architektur von den Anwendungen hast bzw. ihre Verknüpfung mit IIS etc.

Gerade dort sollte man sich auskennen, da hier eine Fehlkonfiguration katastrophal sein kann.
Hier können durch falsche Bedienung z.B. kritsiche Bereiche für anonyme Zugriffe offen gelegt werden, was in einigen Anwendungen die z.B. Dateien direkt im Web ablegen, sehr häufig zu ungewollten Zugriffen von extern führt.
Das dies auch in Hinsicht des Datenschutz schnell zu einem Problem werden kann und auch ziemlich teuer werden kann, sollte hier klar sein.
Deshalb solltest du dir solche Grundkentnisse umbedingt beibringen und dich einlesen!

T-Virus

Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.

M
moma-Soft Themenstarter:in
30 Beiträge seit 2020
vor 3 Jahren

@T-Virus: Ich meinte damit eine Web-Anwendung (also gibt auch die extra designte mobile Version für Handy, Tablet, ...)

@Abt: ASP.NET MVC Anwendung => korrekt

Mein Problem ist jetzt, dass ich jetzt über den Urlaub das mal bei mir local am Notebook testen wollte, einen Benutzer zu erstellen/anzulegen und zu "konfigurieren"

fand da ein paar Sites:
https://www.windowspro.de/wolfgang-sommergut/web-server-iis-windows-10-installieren-konfigurieren
https://www.itechguides.com/install-iis-windows-10/

aber leider keinen Link wo ich das wirklich probieren konnte, was z.B. dazu noch eingestellt werden muss in den Features... (IIS Server - und es handelt sich im Visual Studio um eine MVC Anwendung | Model-View-Controller)
Vlt kennt da wer eine Anleitung bzw. kann es hier posten, welche Schritte ich setzen muss