Das erste was mir einfällt wäre ein Listview (View: LargeIcon) oder sowas in der Art.
Nur die ersten beiden? (ansonsten wäre Replace einfacher)
Du kannst mit dem Index ja andere Stringfunktionen füttern z.B. Remove (" " raus), Insert (";" rein) , Substring(zum selber zusammenbauen) usw.
Liegt deine CheckBox vielleicht in einer GroupBox, Panel oder sonstigem Parentcontrol das disabled ist?
Hallo Taggi,
Der Weg über Events ist schon der richtige.
Was du übersehen hast ist, das du allen deiner Elemente die geiche Funktion für die Events zuweisen kannst.
Beispiel
this.checkBox1.CheckedChanged += new System.EventHandler(this.ValueChanged);
this.textBox1.TextChanged += new System.EventHandler(this.ValueChanged);
this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.ValueChanged);
Das du immer nur den letzten Treffer angezeigt bekommst liegt daran das du deinen ergebnis-wert immer überschreibst.
Du könntest zum beispiel bei jedem schleifendurchlauf an den bereits bestehenden regebnis-string einen Zeilenumbruch und das nächste Ergebnis anhängen.
Oder wenn ich mich grade nicht täusche:
Du setzt die TextBox auf Multiline und weist der Lines-Eigenschaft einfach dein String-Array zu anstatt eines einzelnen Strings.
So wie du es machst bekommst du keine "einzelnen" Zeilen, das ist das Problem. Du kannst mir gern das Gegenteil beweisen!
na dafür hat man ja das Multiline
-> ^:::
"^[^#][^#]*$[^#]"
Mal dein Regex übersetzt:
Am Zeilenanfang steht ein Zeichen das ungleich # ist, danach stehen beliebig viele Zeichen die auch ungleich # sind, dann ist Zeilenende und danach steht wieder ein Zeichen das ungleich # ist.
Warum so umständlich?
W+rde es nicht reichen Beliebig viele Zeichen ungleich # zu haben? oder wenn du keine leeren Zeilen haben willst das machst du halt nicht beliebig viele sondern mehr als einen anderen quantor (z.B. +)
nicht #
[^#]*
und wenn du dich mit RegexOptions auskennst dürfte dir das hier ja bekannt vorkommen:
Multiline: Mehrzeilenmodus. Ändert die Bedeutung von ^ und $, sodass sie jeweils dem Anfang und Ende einer beliebigen Zeile und nicht nur dem Anfang und Ende der gesamten Zeichenfolge entsprechen.
das zusammenbauen überlass ich dir will ja nicht die Aufgabe komplett lösen 8)
Du willst das alles erlaubt ist außer # also was macht da ein . in deiner auswahl?
ansonsten schauts recht gut aus solltest dir mal RegexOptions anschaun vor allem das Multiline ist für dich interessant 😁
Denk mal nach:
Du hast die Startposition und die Endposition und du willst wissen wie lang der Teil dazwischen ist...
-1 heisst das "Wort1" nicht in deinem String vorkommt
bei IndexOf wird übrigens aucha auf Groß-/Kleinschreibung geachtet was du aber mit dem StringComparison ändern kannst
Ja aber mit Substring muss ich ja die Position wissen oder nicht?
deswegen ja
int position = stringVariable.IndexOf(wort);
Warum nicht die einfache Variante?
: *
Dafür hat das ListView eine Propertie "AllowColumnReorder"
[edit]zu langsam 😄[/edit]
if (x = 1)...
wieso weist du x den Wert 1 in einer if-bedingung zu? Um zu prüfen ob x 1 ist benutzt man == also
if(x == 1)...
Spieler[i].spielerblatt[j]
Das Array spielerblatt ist nicht initialisiert und somit null.
Entweder in einem Konstruktor oder in deiner Funktion (oder an einer anderen passenden Stelle) musst du das erst zuweisen bevor du auf elemente des Arrays zugreifen kannst.
Bist du dir sicher das dlgFolderOpen.SelectedPath auch eine korrekte Pfadangabe ist?
Wenn dein dlgFolderOpen ein FolderBrowserDialog ist solltest du schaun ob der vorher auch aufgerufen wurde und auch auf Ok geklickt wurde.
Zu wenig volumen beschränkt den Bass.
unf wenn ich mich richtig erinnere reduziert zu viel Volumen die Leistung bei höheren Frequenzen und lässt das ganze schwammiger klingen.
Ein Freund von mir hat sowas schon gemacht.
Das Autoradio kannst du bei einem PC-Netzteil einfach an die 12V-Leitung hängen das sollte reichen.
Er hat noch ne kleine Endstufe mit reingesetzt damit er mehr leistung auf die Lautsprecher kriegt. Das ganze schön mit mdf-Platten eingemauert.
Was das Volumen für die Lautsprecher angeht: das hängt von den verwendeten Lautsprechern ab. Am besten mal beim Hersteller informieren wieviel die Lautsprecher im idealfall brauchen.
System.Windows.Forms.FolderBrowserDialog
Das sind alles Dinge die du auch ohne Probleme nur mit ein bischen Lesen und Nachdenken selbst finden kannst.
Directory.GetDirectories
Wie der Name schon sagt ist das für verzeichnisse und nicht für Dateien.
Directory.GetFiles
Ich hab mir jetz nciht extra alles durchgelesen und geguckt ob dein Regex überhaupt sinnvoll ist aber warum der Compiler deinen Regex nicht akzeptiert kann ich dir sagen:
(?≤(ID+[:,;- ]{1,2}+))[0-9]{7}+
es gibt keine range von das - in den eckigen Klammern bezeichnet immer einen Bereich (von bis z.B. [0-9] Zahlen von 0 bis 9). Das musst du escapen bzw. maskieren.
(?≤(ID+[:,;****- ]{1,2}+))[0-9]{7}+
Um zu sagen wie du da rankommst wäre es hilfreich zu wissen in welcher Form das ganze Vorliegt (Datentyp der gespeicherten Ansage? Womit spielst du es ab? usw).
Stichwort:
Lookarounds (Lookbehind / Lookahead)
Oder
stringVariable.Equals(stringVariable2, StringComparision./*entsprechendes auswählen*/)
Also wenn ich mir deine Signatur anschaue müsstest du auf das Console.ReadLine zum einlesen ja auch so kommen 😁
Und bezüglich Auswertung:
Entweder mti String-Funktionen oder Regex den string in seine Bestandteile zerlegen.
Wenn mans ganz grob nimmt hast du ja nur 2 Elementarten im String:
und der rest sind ja dann nurnoch gesetze der mathematik
Der passende Regex für dich (zum splitten) müsste lauten:
(?<=[^?])[+]
Dafür würde ich RegEx empfehlen.
(siehe [Artikel] Regex-Tutorial)
intern arbeitet er immer mit . als trennzeichen
Wenn du das ganze als als string mit . haben willst musst du das dabei auch angeben
double doubleValue = 1.234;
string doubleString = doubleValue.ToString(System.Globalization.CultureInfo.InvariantCulture);
Das ParentControl(je nachdem Panel, Groupbox oder halt einfach dein Form) hat eine Auflistung aller Controls die darin sind.
parent.Controls[name]
Was du da rausbekommst ist allerdings vom Typ Control, falls du also direkt auf Funktionen/ähnliches eines bestimmten ControlTyps zugreifen willst (wie z.B. .Checked bei Checkboxen) musst du vorher noch entsprechend Casten.
Ist zwar nicht grade ein schöner weg aber er funktioniert.
Die version in der FAQ ist natürlich was sicherheit und sauberkeit angeht bedeutend schöner.
Ich will, dass die eingaben die der Mitarbeiter in die Felder macht in einer Textdatei gespeichert werden. Ist dies möglich? Wenn ja wie?
System.IO. Namespace da findest du Klassen zur Arbeit mit Dateien.
und Automatisch vom Programm die Differenz und eine endgültige Summe errechnet werden. Wie ist das möglich?
Die DateTime-Klasse sollte dir dabei helfen.
Das sollte dir für den Anfang reichen.
In der Schule damals TurboPascal gelernt (Grundkurs zumindest).
In der Berufsschule gings mit C los und sind gerade bei C++(2.LJ).
An der Arbeit von Anfang an C#;
Ich habe jetzt zwar nicht die große Erfahrung wie wahrscheinlich viele andere hier aber allein aus dem was ich bis jetzt gelernt habe, denke ich auch, dass es viel weniger wichtig ist welche sprache du lernst, als das du die logik hinter allem verstehst und den grundsätzlichen aufbau etc.
Dem kann ich mich nur anschließen. 😁
edit: nur doof das mein bruder bei vista an seinem laptop keine cd mitbekommen hat !!!
Torley
Das kenn ich von nem Bekannten da liegen die Installationsdateien auf einem geschützten bereich der festplatte sodass man garkeine CD mehr braucht
Notebook:
[
if (ChefNotOnline = true) { Forum.Dispose(); }
damits nicht falsch stehn bleibt
entweder
if(ChefNotOnline == true)
oder gleich
if(ChefNotOnline)
😜
Das schlimme ist ja:
Das es teilweise stimmt.
Ich hab früher auch WoW gespielt, relativ ausgiebig sogar.
Und irgendwie hatte ich mcih doch ziemlich drann gewöhnt.
Als ich aufgehört hab musste ich mich teilweise schon zwingen den Account nicht wieder anzumelden.
Das Spiel hät ich in der 1. oder selbst noch in der 2 Bundesliga als OK gefunden, aber nicht bei einer WM.
Es war ja auch eine EM und keine WM aber das meintest du sicherlich auch.
Hast schon recht, beide Manschaften haben nicht das gezeigt was sie eigentlich können.
In 2 Jahren haben se ja wieder ne Möglichkeit ^^
also ich find auch das das schon sehr arg hässlich war das tor der spanier und wirklich nur zufall.
Mit Zufall hatte das nichts zu tun, das erkennt man allein schon daran das es etwas später fast nochmal genauso funktioniert hätte.
Wenn der Lehmann nich den fehler gemacht hätte rauszugehen...
Was wäre gewesen wenn....
es ist aber nunmal so passiert und der Fehler hat zum Tor geführt, also wirklich kein Zufall.
Also ich habe den Code mal übernommen und getestet, habe dabei jedoch die Stringbearbeitungen ausgelassen.
Der Code ans ich funktioniert, also liegt der Fehler darin das deine Bearbeitung vom String ihn anscheinden so verändert das das Result am Ende leer ist.
PS.:
timer.Stop();
timer.Start();
also quasi einmal neu starten
naja eklig nicht unbedingt ... wohl eher ein leichtes desinteresse 8)
Wenn ich mal so zurückdenke ...
Grundschule die ersten 2 Jahre
16 Mädels in der Klasse und wir waren genau 3 Jungen 🤔
eigentlich wars ja ganz ok .. mal abgesehen davon das die dauernd nur am rumnerven waren 😁
hehe, kann mich noch gut dran erinnern an die 2 Jahre vertieften Physik Leistungskurs, 11 (dann 10) Mann, Lehrer inbegriffen.
Bei mir wars anders.. Phy Leistungskurs, angefangen mit 8 Leuten am Ende nurnoch 5
und die frauenfeindlichen Witze gabs bei uns auch zur genüge 😁
kannst ja im Regex tutorial nachlesen da steht etwas bezüglich gierigem verhalten
<pc>.*?</pc>
müsste die gewünschten ausdrücke matchen (ja das ? bringts)
Entweder du denkst dir eine eigene Methode aus um den vom benutzer eingegeben Regex zu überprüfen (z.B. mittels eines anderen RegEx, was jedoch relativ komplex werden wird) oder du testest ihn einfach und setzt es in Try/Catch.
Environment.CurrentDirectory
solltest du nicht verwenden damit ist nur der momentan ausgewählt Ordner bezeichnet.
Beim Autostart ist das wahrscheinlich nicht der Ordner wo dein programm liegt.
Benutze lieber
Application.StartupPath
Wenn dein Regex-Pattern "123" ist dann matcht er nur die "123" nichts anderes
Wie man effektiv mit Regex umgeht kannst du im Tutorial nachlesen.
Regex-Tutorial
Wenn du aber nur überprüfen willst ob "123" in einem string vorkommt brauchst du kein Regex da reicht .Contains("text")
das du garkeinen wert im textfeld kriegst kann höchstens bedeuten das du was falsch gemacht hast
ich hab den code getestet (1:1 übernommen und die Funktionen den entsprechenden Events zugeordnet) für nur einen button (also nur ABC) funktionierts einwandfrei
Nach der verstrichenen Zeit, wird der von Bakachan empfohlene Zähler wieder zurückgesetzt und der erste Klick auf denselbigen Button gibt erst einmal A wieder usw.
gute Idee aber nicht nur bei ablauf des Timers sondern auch beim klicken einer anderen Taste (und dann auch nicht das stoppen des timers vergessen)