Mehrere Textboxen miteinander vergleichen (VB.net)

RC-X

PC-Selbstbauer(in)
Hallo zusammen,

Ich bin noch ganz firsch was VB.net angeht, sprich ich bin sehr eingeschränkt was die Umsetzung meines Wissens angeht.

Nun ja, ich stehe vor einem, wahrscheinlich lächerlich kleinem, Problem.
Ich möchte die Inhalte mehrer Textboxen miteinander vergleichen, bloß ich hab keine Ahnung wie das genau anstellen soll.

Ich habe 5 txtboxen und will deren Inhalte auf eine möglichste komfortable Art vergleichen (Aktion soll durch Button ausgelöst werden), die TxtBox mit dem größten Wert soll dann über eine Msgbox ausgegeben werden.

Ich hätte mit If-Vergleichen angefangen und Do Until....
Aber ich weiß nicht wie ich ausdrücken soll, dass größte Wert, der 5 txtboxen, das Ergebnis ist...

Ich hoffe ihr könnt einem angehenden Systemintegrator helfen http://entwickler-forum.de/images/smilies/wink.gif

Schonmal DANKE :daumen: und viele Grüße

Flo

PS: Ich nutze Visual Studio 2010 Ultimate
 
in Visual Studio musst du dann einfach nur das event für button_click() erzeugen (lassen (per doppelklick auf den button)) und dann dort z.B. einen Text.Box-Text in einer int-Variablen speichern*. tjo und danach kannst du ja vergleichen, ob der nächste text größer ist, als der bisher vorhandene und in dem fall wird der wert dann einfach überschrieben...


*z.B.(!) so
Code:
int zahl = (int) deinetextbox.Text;
//wenn du dich mit arrays auskennst, würd ich dir die ans Herz legen und die werte darin immer mit einer
//update-methode neu schreiben lassen. vorteil ist, dass du dann immer diese zahlen/werte
//sofort abrufbereit hast
ich weiß nur nicht mehr, ob man bei VB.NET auch diese Semikolons/semikola verwenden muss :ugly:
aber ich weiß nicht, ob das mitm Autoboxing so in VB ist

ich habs grad mal so gemacht (bidde schlaget mich nicht für die Vorgehensweise :P)
Code:
private void button1_Click(object sender, EventArgs e)
        {
            int[] arr = new int[5]; //array erstellen
            arr[0] = Convert.ToInt32(textBox1.Text); //werte ins array schreiben
            arr[1] = Convert.ToInt32(textBox2.Text);
            arr[2] = Convert.ToInt32(textBox3.Text);
            arr[3] = Convert.ToInt32(textBox4.Text);
            arr[4] = Convert.ToInt32(textBox5.Text);
            int groesste = 0;
            for (int i = 0; i < arr.Length; i++) //array nach größtem wert durchsuchen und in "groesste" speichern
            {
                if (arr[i] > groesste)
                    groesste = arr[i];
            }
            MessageBox.Show("größte ist: " + groesste); // tjaa... was passiert hier wohl :D
        }
das ist jetzt nicht sehr dynamisch, aber sollte deine aufgabe erfüllen... du musst aber aufpassen, da Int32-Werte maximal ~32.000 groß sein können!
 
Zuletzt bearbeitet:
:sabber::wow::sabber::wow::sabber:

Kranke Sache...
Aber ich denke ich habe es ungefähr verstanden, vom aufbau zumindest, aber ganz durchblicken tu ich leider nicht, sry

Ich kann dir aber sagen, dass es keine Semikolon/Semikola so gibt ;)
 
hey,
also so krank ist das gar nicht ;)
Im grunde ist es hier wichtig, dass du alle vorhandenen Daten erstmal irgendwie zusammenschaffst (dazu halt eben das Array, oder eine virtuelle Tabelle, wenn dir das weiterhilft) und dann kannst du mit den Daten auch flexibel weiterarbeiten. "do until" hättest du da auch benutzen können ... wenn du dafür noch einen Entwurf haben möchtest, kann ich dir auch mal einen basteln (Allerdings mache ich das mit C#, ist also ggf. nicht komplett kompatibel mit VB)

nur mit Arrays würde ich mich als "Systemintegrator" schon auseinandersetzen :)
Ich bin ja auch gerade erst in der Lernphase, aber wenn du noch mehr fragen hast, immer her damit, ich will LERNEEEEN :hail:
(nächstes Mal werde ich die Lösung dann auch nicht so direkt hinschreiben, damit der Lerneffekt auch auf die anderen Personen übergreift :D :P)


PS: was macht man eigentlich so als Systemintegrator? oder als "angehedner"? so langsam sollte ich mich ja auchmal mit dem Thema Beruf auseinadnersetzen ...:huh:
 
Der Spaß geht auch nen bischen eleganter, mit einer Liste.

Dazu einfach alle Werte der Textboxen einer Liste hinzufügen, und anschliessend mit der Max() Methode der List-Class den Höchstwert bestimmen und weiterverarbeiten.
Mache leider (oder zum Glück ;)) kein VB, aber in C#.net könnte das z.B. so aussehen:

Code:
List<int> MyList = new List<int> { Convert.ToInt32(textBox1.Text), Convert.ToInt32(textBox2.Text), Convert.ToInt32(textBox3.Text) };
textBox4.Text = Convert.ToString(MyList.Max());
 
Code:
List<int> MyList = new List<int> { Convert.ToInt32(textBox1.Text), Convert.ToInt32(textBox2.Text), Convert.ToInt32(textBox3.Text) };
textBox4.Text = Convert.ToString(MyList.Max());

heyho,
nice Code :)
gibts das mit der Max-Methode auch für arrays?
und mal ne frage zu der letzten Anweisung .... ich hätte das jetzt mit
Code:
textBox4.Text = "" + MyList.Max(); //in den anführungszeichen kann(!) auch text stehen ...
gemacht.
wieso verwendest du da Convert.ToString()? (ist jetz nicht bös gemeint oder so :D ;) )
 
Naja ich hab halt Convert.ToString benutzt um auf Nummer sicher zu gehen.
Falls es so ist wie du schreibst, das der MyList.Max()-Wert implizit in einen String umgewandelt wird, wenn du ihn mit "" und + verbindest, dann ist das zwar praktisch, aber unschön ;)

Für die Arrays gibt es so direkt keine Max() Methode, jedoch für die ArrayList, falls dir das weiterhilft!
 
@Fadade:
Ich lerne Fachinformatiker für Systemintegration, grob beschrieben gehts hier um den Schwerpunkt Netzwerk.
Das Gegenstück dazu ist der Fachinformatiker für Anwendungsentwicklung, das sind die Progger die im dunklen Keller bei Chips und Cola leben ;D

Fachinformatiker Systemintegration BERUFENET, Berufsinformationen einfach finden - Suche

Fachinformatiker Anwenungsentwicklung BERUFENET, Berufsinformationen einfach finden - Suche

Lies dir das mal durch, da steht im groben drinnen was du machst, aber das Berufsbild ist von Betrieb zu Betrieb anders.
Ich bin beispielsweise in der Automobilindustrie tätig, da ist mein Aufgabengebiet ganz anders, als bei meinem Berufsschulkollegen, die in einem Unternehmen IT-Serviceleistungen etc. anbieten.

Und bzgl. proggen... Heute nicht mehr, heute gehört der Abend meiner Freundin ;)
 
@Fadade:
Ich lerne Fachinformatiker für Systemintegration, grob beschrieben gehts hier um den Schwerpunkt Netzwerk.
Das Gegenstück dazu ist der Fachinformatiker für Anwendungsentwicklung, das sind die Progger die im dunklen Keller bei Chips und Cola leben ;D

Fast richtig, die FIAE´s sind die, die den FiSi´s erklären wie man proggt ;)!
 
ganz ehrlich? die parallel-klasse bei uns in der BS besteht nur aus AE'lern...
und die können proggen noch weniger als wir Sysis ;)
 
hm .. jaja ... soso FIAE, FiSI, AE, FISIFO, FASATU, AEK, USW :D
nein, scherz^^, schon klar was gemeint ist


@Fadade:
Ich lerne Fachinformatiker für Systemintegration, grob beschrieben gehts hier um den Schwerpunkt Netzwerk.
Das Gegenstück dazu ist der Fachinformatiker für Anwendungsentwicklung, das sind die Progger die im dunklen Keller bei Chips und Cola leben ;D

Lies dir das mal durch, da steht im groben drinnen was du machst, aber das Berufsbild ist von Betrieb zu Betrieb anders.
Ich bin beispielsweise in der Automobilindustrie tätig, da ist mein Aufgabengebiet ganz anders, als bei meinem Berufsschulkollegen, die in einem Unternehmen IT-Serviceleistungen etc. anbieten.

ich glaube, damit hast du meinen Studiumswunsch Informatik komplett abgesiegelt. Nur muss ich mal schauen, ob und wie man sich hier auf der Uni auch so spezialisieren kann :huh:
naja denn genieße mal deinen bzw. "ihren" Abend ;)


PS: hat hier sonst noch jemand eine kleine Programmieraufgabe für mich? (wenn nicht, sehe ich mich gezwungen dazu einen Thread zu eröffnen :P)
 
Du könntest einen Palindromchecker basteln ;)
Das schwierige dazu: Es darf nur eine Txtbox sein und er muss leerzeichen, kommas und groß und kleinschreibung ignorieren.

Ein Palindrom ist ein Wort, das von vorne und hinten gelesen, das gleiche ergibt.
z. B. Radar, Otto, Lagerregal, aber auch zahlenfolgen wie 01110
 
Am Samstag Arbeitsaufträge verteilen ... tz tz tz :ugly:

Code:
private void palindromchecker(String s) //s kann dabei z.B. wieder textBox1.Text sein
{
       s = s.ToUpper();
       char[] richtigrum = new char[s.Length];
       char[] falschrum = new char[s.Length];
       for (int i = 0; i < s.Length; i++) //in arrays speichern
       {
            richtigrum[i] = s[i];
            falschrum[i] = s[(s.Length - 1 - i)]; //das eingabewort rückwärts einlesen ;)
        }

        bool gleich = true;
        for (int i2 = 0; i2 < s.Length; i2++) //arrays vergleichen
        {
              if (richtigrum[i2] != falschrum[i2])
              gleich = false;
         }

         if (gleich)
                MessageBox.Show("es handelt sich um ein Palindrom oder du hast einen leeren text eingegeben^^","infooooo");
}
so ich hoffe, das funktioniert, ist noch nicht getestet :D
und eine Fehlerbehandlung gibts auch nicht^^
hier isses mir arrays gemacht. sonst könnte man evtl. auch String s1 als originalwort und s2 als s1.Reverse() nehmen und dann einfach vergleichen ...

@supeq: array-List :huh: sagt mir noch gar nichts....


€dit: "falschrum = s[(s.Length - 1 - i)];" korrigiert und die ToUpper-Methode hinzugefügt^^
 
Zuletzt bearbeitet:
Zurück