Hi,
ja ich bins mal wieder 😁
Habe mich jetzt auch schon bis zu den Windows.Forms gearbeitet.Aber jetzt habe ich mal ne frage(wie immer warscheinlich eine Anfängerfrage).
Ich lese einen String bis zum ende aus und übergebe das ergebnis in eine txt.datei.So mein problem ist das ich aber erst ab Substring(9) das ergebnis übergeben will.
Also das was ich jetzt habe sieht so aus.
private void menuOpen_Click(object sender, System.EventArgs e)
{
if(this.SavedCheck() == true) return;
else
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "Textdateien (*.txt)|*.txt|"
+ "Alle Dateien (*.*)|*.*";
ofd.Title = "Öffnen einer Textdatei";
ofd.InitialDirectory = Application.StartupPath;
try
{
if(ofd.ShowDialog() == DialogResult.OK)
{
StreamReader sr = new StreamReader(ofd.FileName);
txtDatei.Text = sr.ReadToEnd();
sr.Close();
this.txtchanged = false;
this.strFile = ofd.FileName;
this.SetFormTitle();
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message, "Texteditor");
}
}
}
mit der console ging das einfach mit
Console.WriteLine(line.Substring(9));
nur wenn ich jetzt Substring in den windwos.forms bereich mit einarbeite erkennt der Substring net. 🙁
Also wie kann es machen das im oberen code erst ab substring(9) in die txt datei übergeben wird.
p.s: Bitte net wieder auf MSDN verweisen da habe ich mich grade 3 stunden durchgewühlt und bin net wirklich schlauer als vor 3 stunden.
MFG
habeKA
There's no place like 127.0.0.1
Substring ist eine Methode der Klasse String und hat rein gar nichts mit Windows Forms zutun.
Bitte schau sowas in einem Buch nach,
z.b. http://www.galileocomputing.de/openbook/csharp/
So habe mir das jetzt angeschaut aber trotzdem kein Ahnung wie ich den substring in
if(ofd.ShowDialog() == DialogResult.OK)
{
StreamReader sr = new StreamReader(ofd.FileName);
txtDatei.Text = sr.ReadToEnd();
sr.Close();
this.txtchanged = false;
this.strFile = ofd.FileName;
this.SetFormTitle();
}
}
reinbastlen soll X(
ich glaube ich bin einfach zu blöde dafür 🙁
There's no place like 127.0.0.1
Hallo habeKA,
was möchtest Du denn mit dem Teilstring machen, wo soll er denn "reingebastelt" werden?
Wenn Du den Teilstring als Fenstertitel haben möchtest, dann verwende die Eigenschaft Text Deiner Form. Also in etwa so (je nachdem was Du nun wirklich möchtest):
if(ofd.ShowDialog() == DialogResult.OK)
{
StreamReader sr = new StreamReader(ofd.FileName);
txtDatei.Text = sr.ReadToEnd();
sr.Close();
this.txtchanged = false;
this.strFile = ofd.FileName;
this.Text = txtDatei.Text.Substring(9);
}
}
Grüße
Norman-Timo
Edit: Syntaxfehler behoben
A: “Wie ist denn das Wetter bei euch?”
B: “Caps Lock.”
A: “Hä?”
B: “Na ja, Shift ohne Ende!”
he norman_timo ich wollte eigentlich die txt.datei die ich öffnen ab Substring(9)
in die txt.Datei.Text übergeben.
There's no place like 127.0.0.1
Hallo habeKA,
ein einfacher Blick in die :rtfm: hätte geholfen, dazu musst Du nicht stundenlang die MSDN durchwühlen.
Du verwendest StreamReader.ReadToEnd(). Das liefert als Ergebnis einen String; und mit dem kannst Du wie gewohnt einen SubString erstellen. Also:
txtDatei.Text = sr.ReadToEnd().Substring(9);
Gruß Jürgen
So danke an alle sieht jetzt so aus 😁
private void menuOpen_Click(object sender, System.EventArgs e)
{
String line = "";
if(this.SavedCheck() == true) return;
else
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "Textdateien (*.txt)|*.txt|"
+ "Alle Dateien (*.*)|*.*";
ofd.Title = "Öffnen einer Textdatei";
ofd.InitialDirectory = Application.StartupPath;
try
{
if(ofd.ShowDialog() == DialogResult.OK)
{
StreamReader sr = new StreamReader(ofd.FileName);
while ((line = sr.ReadLine()) != null)
{ // alternativ
txtDatei.Text = sr.ReadLine().Substring(9);
} //txtDatei.Text = sr.ReadToEnd().Substring(9); geht auch
sr.Close();
this.txtchanged = false;
this.strFile = ofd.FileName;
this.SetFormTitle();
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message, "Texteditor");
}
}
}
jetzt zeigt er zwar nur die letzte zeile der geöffneten datei an aber das bekomme ich auch noch hinn und wenn net frage ich einfach nochmal hier 😁
There's no place like 127.0.0.1
Huhu,
ich bins mal wieder 😄.
Also folgendes ich lese eine Text-Datei zeilenhaft aus und lasse die ausgelsene zeile in einer neue Textdatei ab Substring(9) übergeben.
Jetzt mein Problem. Aus einem nicht ersichtlichen Grunde schreibt er immer nur die letzte Zeile aus der Original TXT.Datei in die neue TXT.Datei.
Der Code sieht so aus :
private void menuOpen_Click(object sender, System.EventArgs e)
{
String line = "";
if(this.SavedCheck() == true) return;
else
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "Textdateien (*.txt)|*.txt|"
+ "Alle Dateien (*.*)|*.*";
ofd.Title = "Öffnen einer Textdatei";
ofd.InitialDirectory = Application.StartupPath;
try
{
if(ofd.ShowDialog() == DialogResult.OK)
{
StreamReader sr = new StreamReader(ofd.FileName);
while ((line = sr.ReadLine()) != null)
{
txtDatei.Text += sr.ReadLine().Substring(9);
} //txtDatei.Text = sr.ReadToEnd().Substring(9); geht auch
sr.Close();
this.txtchanged = false;
this.strFile = ofd.FileName;
this.SetFormTitle();
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message, "Texteditor");
}
}
}
alternativ kann mana auch
txtDatei.Text += sr.ReadLine().Substring(9);
mit
txtDatei.Text = sr.ReadToEnd().Substring(9);
ersetzten.(ok schleife müsste auch noch weg) Aber dann wird nur von de rerstenzeile die ersten neuen zeichen weggelassen.
Also so sieht die original TXT.Datei aus
123456789Text
123456778Text2
123456567Text3
und das gibt er mir aus wenn ichd as mit der schleife übergebe.
Text3
Soll aber so aussehn
Text
Text2
Text3
Nur ich habe keine Ahnung warum der das so nicht ausgibt.
Debugger auch durchlaufen lassen nix gefunden .
Werte sind auch alle ok. ´
Vll weiss ja wer was da falsch ist
MFG
HabeKA
There's no place like 127.0.0.1
Hallo habeKA,
die Zeile in der Schleife müsste eigentlich so aussehehen:
txtDatei.Text += line.Substring(9);
Was ist txtDatei für ein Objekt?
warum liest du die zeile nicht in der whileschleife ein und schreibst ihn im selben athemzug in die neue datei
StreamReader sr = new StreamReader(ofd.FileName);
StreamWriter sw = new StreamWriter(Pfad\name.endung);
while (!sr.EndOfFile)
{
sw.WriteLine(sr.ReadLine().?ToString()?.Substring(9);
}
sr.Close();
sw.Close();
!Achtung ungeteste schreibfehler nicht ausgeschlossen!
..... auch wen ich net der erste bin der antwortet und es bereits verschoben wurd xD
MfG Paul
Danke euch .
Aber
StreamReader sr = new StreamReader(ofd.FileName);
StreamWriter sw = new StreamWriter(Pfad\name.endung);
while (!sr.EndOfFile)
{
sw.WriteLine(sr.ReadLine().?ToString()?.Substring(9);
}
sr.Close();
sw.Close();
so würde ich das auch machen wenn ich ind er console arbeite.
Nur ich schreibe in eine TextBox und ich habe kA was fürn pfad die TextBox hat.
Wenn ich den namen der TextBox als Pfad angebe geht das net.
Aber danke ich werde mal weiterschaun 👍
und SORRY wegen dem falschen Post (war nicht mit absicht) X(
There's no place like 127.0.0.1
Wenn du in eine textbox schreibst musst du natürlich TextBox.Multiline = true setzen, sonst wird immer nur eine Zeile angezeigt.
Hallo habeKA,
der Name ist Programm 8)
using(StreamReader sr = new StreamReader(ofd.FileName))
{
while (!sr.EndOfFile)
{
txtDatei.Text += sr.ReadLine().Substring(9);
}
}
BTW: TextBox.Multiline = true nicht vergessen
So einfach wie möglich, aber nicht einfacher. [Albert Einstein]
take a look at
* baer-torsten.de
* codinghints
Original von él toro
Hallo habeKA,der Name ist Programm 8)
ja genau ! aber jeder fengt mal klein an xD
There's no place like 127.0.0.1
Hallo habeKA,
aber jeder fengt mal klein an
klar, aber beachte unbedingt:
Auf der anderen Seite ist myCSharp.de kein reines Anfängerforum. Wir setzen grundlegende Kenntnisse voraus, zum Beispiel über den Aufbau von Windows-Forms-Anwendungen. Solche grundlegenden Kenntnisse erwirbt man leichter und besser, wenn man ein Buch durcharbeitet. Anfänger sollten daher akzeptieren, wenn sie bei zu grundlegenden Fragen auf das Selbststudium verwiesen werden.
Aus
>
herbivore
8o naja bis jetzt habt ihr ja noch alle fragen beantwortet.
Ok ich werde mich mal mehr mit --> :rtfm: befassen.
Auserdem kennste sicher doch :
Community-Regeln oft zetiert, kaum gelesen und nie beachtet 🤔
in dem sinne DANKE erstmal für die hilfe und ich poste erst wieder wenn ich was mehr an Grundwissen habe
There's no place like 127.0.0.1
Und das werden wir auch weiter machen da wir Anfängern gegenüber offen sind, aber du musst schon ein bisschen mehr Eigeninitiative an den Tag legen. Schließlich hätten dich aus meiner Sicht die vorhergehenden Antworten der Lösung schon näher bringen müssen ...
BTW: Hat dir der Codeschnipsel geholfen?
So einfach wie möglich, aber nicht einfacher. [Albert Einstein]
take a look at
* baer-torsten.de
* codinghints
Ja hat mich weitergebracht und nochmals DANKE 👍
Jetzt muss ich nur noch schaun das die ausgabe untereinander in der Textbox erscheint und net nebeneinander.
Also so:
Text
Text2
und net so
TextText2
aber das bekomme ich diesmal selbst hin 😉 auch wenn ich nen bissel mehr nachdenken muss 🤔 ^^
There's no place like 127.0.0.1
Einfach dort, wo du in die Textbox schreibst nen Zeilenumbruch einfügen 👍
So einfach wie möglich, aber nicht einfacher. [Albert Einstein]
take a look at
* baer-torsten.de
* codinghints
ich habe gerade bemerkt das es hier ja um ein schreiben in eine textbox geht....
dachte du woltest einfach nur von datei A in datei B schreiben^^
warum geht keine richt text box?!
MfG Paul
😁 herbivore hat recht bücher helfen weiter 👅
habs mit Environment.NewLine. gemacht und danke el toro dank dir wuste ich auch wo ich das hinn setzten muss 👍
There's no place like 127.0.0.1
tach,
ist ja niedlich euer talk über anfänger und so.
wie arrogant muss man eigentlich sein, um aus einem 4zeiler den wissensgrad eines menschen ermitteln zu können.
mal ehrlich, wir sind doch alle nur hier im forum weil wir irgendwas nicht wissen und hoffen, das uns hier geholfen wird. auch die, die gern mal auf "Anfänger" herabschauen.
man kann alles lesen, aber nicht alles wird auf anhieb verstanden. es giebt viele gründe dafür. ein gespräch mit anderen hilft da immer. es werden einfach andere blickwinkel aufgezeigt, die ein nicht verstandenes problem plötzlich ganz klar erscheinen lassen.
in einem solchen forum soll ein austausch von wissen stattfinden und kein wettbewerb, wer der grösste ist.
MfG nowanet
**:::
Hallo nowanet,
mir ist nicht klar, wie du aus einem 4zweiler ermitteln willst, wie arrogant jemand ist. Davon, dass es hier um die Kenntnisse gar nicht geht, sondern nur um die Art der Aneignung derselben, scheinst du mir hier den gleichen Fehler zu machen, den du anderen vorwirfst. 🙂 Keiner hat hier irgendetwas gegen Anfänger gesagt.
herbivore