Autor Beitrag
Kleinohr
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 20



BeitragVerfasst: Mo 17.05.10 21:41 
Guten Nabend Zusammen

Nach einer 3 stündigen suche im Netz wende bzw. nerve ich mich mal wieder euch. Habe folgendes Problem. Habe mir mehrere CSV-Dateien erstellt die Spaltenanzahl und Spaltenüberschriften sind in allen Dateien gleich. Das einzige was sich ändert ist der Inhalt der einzelnen Zeilen. Dies überschneiden sich jedoch auch nicht. Jetzt will ich die Dateien zusammenfassen wie im folgenden Beispiel

Datei 1
Spalte A SpalteB SpalteC
NR. x[m] y[m]
1001 5 4
1002 4 4

Datei2
Spalte A SpalteB SpalteC
NR. x[m] y[m]
11001 5 4
11002 4 4

zusammengefasste Datei

Spalte A SpalteB SpalteC
NR. x[m] y[m]
1001 5 4
1002 4 4
11001 5 4
11002 4 4

Könnt Ihr mir da weiter helfen wie ich es am besten anstelle. Vielleicht auch mit einem Codeschnipsel.

mfg
Kleinohr


Moderiert von user profile iconChristian S.: Topic aus C# - Die Sprache verschoben am Mo 17.05.2010 um 21:51
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mo 17.05.10 21:51 
Hallo!

Was hast Du denn bisher probiert und wo kommst Du nicht weiter? Du musst doch nur die Dateien nach einander auslesen und die Zeilen jeweils in eine (einzige) andere Datei schreiben.

Je nach Ansatz wären hier die File-Klasse sinnvoll oder auch die StreamWriter und StreamReader-Klassen.

Grüße
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Kleinohr Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 20



BeitragVerfasst: Mo 17.05.10 21:59 
mir felht gerade ein Ansatz. Hatte mir die File-Klasse schon angenguckt und was probiert funzte aber nicht.

Am liebsten möchte ich meine 8 CSV-Dateien ganz einfach zu einer neunten zusammenfassen.
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mo 17.05.10 22:11 
user profile iconKleinohr hat folgendes geschrieben Zum zitierten Posting springen:
Hatte mir die File-Klasse schon angenguckt und was probiert funzte aber nicht.

Beschreibe das mal detaillierter. Was hast Du versucht und inwiefern hat es nicht funktioniert. Da kann man dann bestimmt schon was draus machen :-)

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Kleinohr Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 20



BeitragVerfasst: Mo 17.05.10 22:48 
muss erstmal neu überlegen habe es gelöscht. habe gerade noch einen tipp bekommen.

Eingabedateien zum lesen öffnen, die erste zwei Zeilen überlesen. In Zieldatei zum schreiben öffnen die ersten zwei Zeilen anlegen, dann die Inhalte aus den Eingabedateien zeilenweise reinschreiben.

Muss mich jetzt damit erstmal auseinandersetzen welche befehle es dafür gibt. und wie ich sie verwende.
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mo 17.05.10 22:55 
user profile iconKleinohr hat folgendes geschrieben Zum zitierten Posting springen:
Muss mich jetzt damit erstmal auseinandersetzen welche befehle es dafür gibt. und wie ich sie verwende.
Dafür sollten die oben genannten Klassen ausreichen!

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Kleinohr Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 20



BeitragVerfasst: Mo 17.05.10 22:56 
weiß nur nicht wie man die ersten zwei Zeilen überlesen kann.
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mo 17.05.10 22:59 
Also entweder, Du liest mit File.ReadAllLines alle Zeilen einer Datei in Array und liest das erst ab Index 2 (also der dritten Zeile).

Oder Du liest die Datei Zeilenweise, z.B mit dem StreamReader. Dann liest Du die ersten zwei Zeilen zwar ein, ignorierst aber einfach, was Du da einliest. Erst ab Zeile 3 schreibst Du dann mit dem StreamWriter in die zu erzeugende Datei.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Kleinohr Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 20



BeitragVerfasst: Mo 17.05.10 23:26 
boah ich raffe es einfach nicht. gibt es einen guten link für ein tutorial oder beispiel.
vielleicht sollte ich auch ne nacht drüber schlafen.

besten dank aber für die viele tipps
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mo 17.05.10 23:34 
Zeig doch einfach mal, was Du versuchst und wo es hakt! :-)

Für Dein spezifisches Problem wird es sicherlich kein Tutorial geben. Allerdings kann man das nur schwer sagen, weil ich nicht weiß, wo Du nicht weiter kommst!

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Kleinohr Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 20



BeitragVerfasst: Mo 17.05.10 23:38 
verschieben wir auf morgen wenn es geht.

gehe jetzt erstmal schlafen und dabei überlegen.

tschöö
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Di 18.05.10 07:55 
Hallo,

was machst du den später mit den erstellen Datei? Solltest du vlt. die Datei nicht gleich strukturierter (als CSV, wie zum Beispiel Xml) erzeugen?

Ansonsten gilt der Ansatz von Christian. Öffne eine Ausgabe Datei und danach jede einzelne Eingabedatei. Übertrage nur bei der ersten die Zeile 1+2, bei den anderen ignorieren.

Dennoch gilt desto mehr Background-Wissen wir haben desto gezielter können wir dir helfen. Die Eingabedateien hast du ja schon kurz vorgestellt. Dein Code wäre nun interessant. Was mich noch interessiert ist eben was du später mit der Datei machen willst. Ob es wirklich sinnvoll ist eine neue Datei zu erstellen und welches Format und ... :)

bis später

Gruß
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Di 18.05.10 08:49 
Die Tipps sind doch mehr als ausreichend (zumal die SDK-Doku/MSDN/Hilfe viele Beispiele enthält). Und dort hat er die gleichen Vorschläge mit anderer Formulierung nochmal bekommen. Das sollte genügen. Jürgen
DevInet
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 43

Win XP, Win 7 Prof., Linux Mandriva
C#(VS 2010), Java, php
BeitragVerfasst: Do 27.05.10 15:45 
Hi.

Bin zwar neu hier aber ich geb auch mal meinen Senf dazu.

Am einfachsten machste es dir, wenn du mit streamreader und streamwriter, in kombination mit ner listbox arbeitest. musst nur zwei buttons ins frontend packen. mit dem einen liest du den Inhalt der csv-dateien in die Listbox ein und mit dem anderen schreibst du den kompletten listbox-inhalt in die neue datei.

mfg DevInet
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Do 27.05.10 17:12 
Und wieso braucht man dafür eine grafische Komponente wie die Listbox? Die ist dazu schlicht nicht da und es ist falsch, sie in dem Zusammenhang so zu verwenden.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
DevInet
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 43

Win XP, Win 7 Prof., Linux Mandriva
C#(VS 2010), Java, php
BeitragVerfasst: Fr 28.05.10 11:13 
Und wieso ist es falsch? Ist doch wohl seine Sache, ob er das über nen frontend oder nen Shellscript macht. Ausserdem kann er so die daten auf die richtige anordnung kontrollieren. Klar kann man das auch als Shellscript machen. Ich kann dir dazu auch nen Perlscript basteln, aber für den Anfang ist denk ich ne grafische Oberfläche besser geeignet.
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Fr 28.05.10 11:18 
Er will eine grafische Komponente zur (temporären) Datenhaltung benutzen. Das ist falsch. Dazu gibt es List<T> o. ä.. Die GUI ist nun mal nur zur Anzeige von Daten da und zu nix anderem.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
DevInet
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 43

Win XP, Win 7 Prof., Linux Mandriva
C#(VS 2010), Java, php
BeitragVerfasst: Fr 28.05.10 11:59 
Wenn man die Daten nur temporär vorhalten will und nichts grafisch darstellen will, dann braucht man "überhaupt keine" gui(grafische Komponente). Dann kann man das auch einfach in nen shellscript verbannen. Ausserdem kann er die Listbox auch einfach verstecken.

PS: Wenn du unbedingt willst, dass er List "o.ä" nutzt dann schreib ihm doch gleich nen schönes kleines shellscript. Da braucht er dann gar keine GUI mehr.
Nur weil du es nicht so machst, heisst es nicht das alle anderen es so machen müssen wie du.


Mfg DevInet
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Fr 28.05.10 12:19 
user profile iconDevInet hat folgendes geschrieben Zum zitierten Posting springen:
Wenn man die Daten nur temporär vorhalten will und nichts grafisch darstellen will, dann braucht man "überhaupt keine" gui(grafische Komponente). Dann kann man das auch einfach in nen shellscript verbannen.

Richtig. Aber es geht hier nicht drum, ob er die Daten anzeigen will oder nicht.


user profile iconDevInet hat folgendes geschrieben Zum zitierten Posting springen:
Ausserdem kann er die Listbox auch einfach verstecken.

Nicht Dein ernst, oder? Anstatt also die Klassen zu benutzen, die dafür gemacht sind und wesentlich weniger Ressourcen verbrauchen, nimmt man eine grafische Komponente, die noch dazu nicht typensicher speichert, und versteckt die dann? Klar, das ist echt super :autsch:

user profile iconDevInet hat folgendes geschrieben Zum zitierten Posting springen:
PS: Wenn du unbedingt willst, dass er List "o.ä" nutzt dann schreib ihm doch gleich nen schönes kleines shellscript. Da braucht er dann gar keine GUI mehr.

Ich habe nicht gesagt, dass er keine GUI braucht. Eine Trennung von Datenhaltung und Datenanzeige ist das, worauf ich hinaus will.

user profile iconDevInet hat folgendes geschrieben Zum zitierten Posting springen:
Nur weil du es nicht so machst, heisst es nicht das alle anderen es so machen müssen wie du.
Eine saubere Trennung von Programmlogik und Anzeige ist keine Geschmackssache.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
DevInet
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 43

Win XP, Win 7 Prof., Linux Mandriva
C#(VS 2010), Java, php
BeitragVerfasst: Mo 31.05.10 11:46 
@Christian S.: Sorry das ich dich so angegangen bin. Hab dich ehrlich gesagt vorher nicht ganz verstanden. Jetzt ist mir dabei einiges klarer geworden.

Mfg DevInet