Zum Inhalt wechseln

Als Gast hast du nur eingeschränkten Zugriff!


Anmelden 

Benutzerkonto erstellen

Du bist nicht angemeldet und hast somit nur einen sehr eingeschränkten Zugriff auf die Features unserer Community.
Um vollen Zugriff zu erlangen musst du dir einen Account erstellen. Der Vorgang sollte nicht länger als 1 Minute dauern.

  • Antworte auf Themen oder erstelle deine eigenen.
  • Schalte dir alle Downloads mit Highspeed & ohne Wartezeit frei.
  • Erhalte Zugriff auf alle Bereiche und entdecke interessante Inhalte.
  • Tausche dich mich anderen Usern in der Shoutbox oder via PN aus.
 

   

Foto

[S] Hilfe bei VB.net [B] Lebenslange Dankbarkeit

- - - - -

  • Bitte melde dich an um zu Antworten
23 Antworten in diesem Thema

#1
paulaner

paulaner

    Hacker

  • Premium Member
  • Likes
    50
  • 182 Beiträge
  • 13 Bedankt

Nabend Freunde der Nacht :)

 

Ich bräuchte mal wieder Unterstützung.

Und zwar versuche ich mit meinen mehr als bescheidenen Programmierkenntnissen ein Programm zu schreiben was im Grunde genommen eine Textdatei erstellen soll. Das ist auch noch im Rahmen meiner Möglichkeiten ;)

das Ding ist, dass diese Textdatei auch gefüllt werden soll. UND ZWAR gibt es auf der GUI des Programms ein paar checkboxen. Wenn diese checkboxen .checked sind soll z.B folgende Zeile in die Textdatei geschrieben werden:

"addNAME blabla<>blablabla". Das ist ja eigentlich auch noch recht leicht machbar denk ich. Jetzt kommt meine Frage:

Ich müsste doch jetzt total viele IF Abfragen um alle .checked Kombinationen abzudecken oder habe ich einen Denkfehler?

Einfacher wäre es ja wenn es die Möglichkeit gibt dem Programm zu sagen:

Guck ob checkbox1.checked ist, wenn ja, schreibe in Zeile 1 "addNAME blabla<>blablabla".

Danach überprüfe ob checkbox2.checked ist und wenn ja dann schreibe in DIE NÄChSTE Zeile "addTelefonnummer blabla<>blablabla".

 

Da ich wie gesagt, nicht sehr viel Ahnung habe, wollte ich mal nachfragen, wie ihr das machen würdet?

 

 

Hoffe ich hab das EINIGERMAßEN verständnisvoll formuliert.

 

MfG



#2
Cube

Cube

    Würfel

  • Banned
  • PIPPIPPIPPIPPIPPIPPIPPIPPIPPIP
  • Likes
    7
  • 819 Beiträge
  • 1062 Bedankt
  • Android, Android [root]
  • Windows, Linux

Erklärung is so lala.

 

Aber sag uns mal: Von wie vielen Checkboxen reden wir denn da so?

 

Grüße


Jabber: cube@exploit.im

Only with OTR!

 

HQ Password-Recovery-Tool (Browser, Mail uvm.): TripleCCC


#3
paulaner

paulaner

    Hacker

  • Premium Member
  • Likes
    50
  • 182 Beiträge
  • 13 Bedankt

Sorry, bin heute irgendwie erledigt und verwirrt ^^

 

Also wir reden von 20 Checkboxen und einer String Variablen die aus einem Textfeld erzeugt wird, welche noch mit in die Textdatei geschrieben werden muss.



#4
juPP

juPP

    Hacker

  • Premium Member
  • Likes
    49
  • 174 Beiträge
  • 61 Bedankt
  • 000000
  • Blackberry
  • Windows, Linux

So wie ich est verstanden hab willst du folgendes, Du hast ja bestimmt einen butten der dann deinen string in die datei schreibt. In dem ClickEvent von diesem Schreibe button fügst du folgenden Code ein:

            Hashtable haschisch = new Hashtable();

            haschisch.Add(checkBox2, "AAAAAAA\r\n");
            haschisch.Add(checkBox3, "CCCCCCC\r\n");
            haschisch.Add(checkBox4, "BBBBBBB\r\n");
            haschisch.Add(checkBox5, "CCCCCCC\r\n");


            foreach (DictionaryEntry xxx in haschisch)
            {
                CheckBox a = xxx.Key as CheckBox;

                if (a.Checked)
                {
                    final += xxx.Value;
                }
            }

            Console.WriteLine(this.final);

Damit fügst du einfach die ganzen Checkboxen deiner form und deinen gewünschten string einer hashtable hinzu, durchläufst diese dann in einer foreach und prüfst ob eine checkbox "Checked" ist, wenn ja fügst du den string an.

 

Hoffe es hilft.

 

ps: code ist c# aber sollte ja egal sein, kannste ja easy portieren


  • SAR und Cube gefällt das
... hier könnte Ihre Werbung stehen ;)

Thanked by 1 Member:
paulaner

#5
Cube

Cube

    Würfel

  • Banned
  • PIPPIPPIPPIPPIPPIPPIPPIPPIPPIP
  • Likes
    7
  • 819 Beiträge
  • 1062 Bedankt
  • Android, Android [root]
  • Windows, Linux

Mh.

Naja vlt kann man da irgendwas mit switch/Case drauß basteln.

Ansonsten wirst du an den If abfragen nicht dran vorbeikommen.

If Abfragen gibts diverse Kurzschreibweisen um dir etwas Tipp arbeit zu ersparen aber wirklich drumherum wirste denke ich nicht kommen.

Einfach mal danach googeln wenn du kurzschreibweisen suchst. (kenns aber nur aus c#)

 

Grüße

 

EDIT: Wie mein Vorposter schon schrieb: Das is natürlich keine schlechte Idee.

Selbiges prinzip kann man umbauen/umformen.

Da du mir wie ein anfänger aussiehst, wollte ich das vermeiden ^^ aber nun auch gut.

Und anstatt eben das ganze wie bei @juPP in die Konsole zu schreiben, eben in dein File.


Jabber: cube@exploit.im

Only with OTR!

 

HQ Password-Recovery-Tool (Browser, Mail uvm.): TripleCCC


Thanked by 1 Member:
paulaner

#6
paulaner

paulaner

    Hacker

  • Premium Member
  • Likes
    50
  • 182 Beiträge
  • 13 Bedankt

Vielen Dank euch beiden für die schnelle Antwort!

Ich werde deine Methode später auf jeden Fall  ausprobieren JuPP.

Vielen Dank.

 

Wenn es nicht funktioniert, gehts halt an die If-Abfragen :)

 

Ich geb auf jeden Fall mal feedback.



#7
juPP

juPP

    Hacker

  • Premium Member
  • Likes
    49
  • 174 Beiträge
  • 61 Bedankt
  • 000000
  • Blackberry
  • Windows, Linux

Es funktioniert auf jeden Fall und es wohl auch wesentlich eleganter, gerade wenn es 20 Checkboxen sind...

 

Habe dir zum besseren Verständnis, ein kleines Projekt angehangen was genau dein vorhaben realisiert.

 

Please Login HERE or Register HERE to see this link!


... hier könnte Ihre Werbung stehen ;)

Thanked by 1 Member:
paulaner

#8
paulaner

paulaner

    Hacker

  • Premium Member
  • Likes
    50
  • 182 Beiträge
  • 13 Bedankt

Mega Korrekt von dir.

 

Vielen Dank!

Das ist fast genau das, was ich brauche. Die paar änderungen sollte ich hin bekommen ;)

 

Tausend Dank!



#9
n1nja

n1nja

    1337

  • Premium Member
  • Likes
    140
  • 303 Beiträge
  • 84 Bedankt
  • Android [root], iPhone
  • Windows, Linux, Mac OS

Du kannst die CheckBoxen auch alle den gleichen Eventhandler mitgeben,

sobald sich da dann was ändern frägst du beim sender nach, welche das ist.

 

Und dann ja wie meine Vorredner schon gesagt haben mit switch solltest es dann sortieren können.

 

 

Aber bei 20 CheckBoxen?

Würd ich eher sagen, das ist ein Design Fehler.

 

Denke auch daran, trenne GUI mit Daten.

 

Und falls du die Textbox brauchst, um den CheckState zu speichern, dann nehme gleich was anderes.

Benutz dazu die INI-Klasse oder speicher es als XML ab.

 

Dadurch hast du einen viel besseren Überblick und du sparst dir einiges an Code.



#10
SAR

SAR

    Regelmäßiger Übertreiber

  • Premium Member
  • Likes
    319
  • 394 Beiträge
  • 286 Bedankt
  • 608463167
  • verifiziert
@juPP: Geniale Zweckentfremdung des HashTabels. :D

Vllt. für Anfänger leichter zu verstehen:
            foreach (Control co in this.Controls)
            {
                if (co is CheckBox)
                {
                    CheckBox ch = (CheckBox)co;

                    if (ch.Checked)
                        final += co.Name + "<>" + GetNextControl(co, true).Text + "\n"; 
                }
            }
Mfg.
SAR

Bearbeitet von SAR, 21 May 2015 - 00:31 Uhr.

Eingefügtes Bild


#11
n1nja

n1nja

    1337

  • Premium Member
  • Likes
    140
  • 303 Beiträge
  • 84 Bedankt
  • Android [root], iPhone
  • Windows, Linux, Mac OS
@SAR
Warum instanzierst die eine neue ChechBox und weist sie gleich von der "richten" die auf der Form ist zu?

Sollte doch ohne diese Zeile auch funktionieren.

Bearbeitet von n1nja, 21 May 2015 - 00:42 Uhr.


#12
SAR

SAR

    Regelmäßiger Übertreiber

  • Premium Member
  • Likes
    319
  • 394 Beiträge
  • 286 Bedankt
  • 608463167
  • verifiziert
@juPP: Weil "Control co" vom Typ Control ist. Control hat leider nicht die Eigenschaft "Checked" zur Verfügung.


Mfg.
SAR

Eingefügtes Bild


#13
n1nja

n1nja

    1337

  • Premium Member
  • Likes
    140
  • 303 Beiträge
  • 84 Bedankt
  • Android [root], iPhone
  • Windows, Linux, Mac OS
Achso ja is richtig.
Man könnte es aber noch mit dynamischen Variablen machen :)

#14
SAR

SAR

    Regelmäßiger Übertreiber

  • Premium Member
  • Likes
    319
  • 394 Beiträge
  • 286 Bedankt
  • 608463167
  • verifiziert
Man könnte es auch so machen, aber ist alles nur Zeilenklauberei. ^^

            foreach (Control co in this.Controls)
            {
                if (co is CheckBox)
                {
                    if (((CheckBox)co).Checked)
                        final += co.Name + "<>" + GetNextControl(co, true).Text + "\n"; 
                }
            }

Was meinst du denn mit dynamischen Variablen?


Mfg.
SAR

Eingefügtes Bild


#15
n1nja

n1nja

    1337

  • Premium Member
  • Likes
    140
  • 303 Beiträge
  • 84 Bedankt
  • Android [root], iPhone
  • Windows, Linux, Mac OS
Ich bin nicht mehr am PC. Da is doof zu coden:)

Ich hab bei meinen Tool vorhin ein Problem gehabt mit dem kompletten auslesen der Registry.
Da hab ich "dynamic" Vars benutzt:)

Da kannst du alle Methoden, Funktionen ranhängen ohne das der Compiler mäckert.
  • SAR gefällt das

#16
SAR

SAR

    Regelmäßiger Übertreiber

  • Premium Member
  • Likes
    319
  • 394 Beiträge
  • 286 Bedankt
  • 608463167
  • verifiziert
            foreach (dynamic co in this.Controls)
            {
                if (co is CheckBox)
                {
                    if (co.Checked)
                        final += co.Name + "<>" + GetNextControl(co, true).Text + "\n"; 
                }
            }
So würde das aussehen. Die Performance geht aber richtig in Keller.

Die erste Variante braucht bei einer checked-Checkbox weniger als 1ms (518 Ticks)
Die dynamic-Variante braucht 95ms (456451 Ticks). xD

Aber das dynamic-Schlüsselwort kannte ich nicht. Ich finde es aber direkt eklig. xD


Mfg.
SAR

Eingefügtes Bild


#17
n1nja

n1nja

    1337

  • Premium Member
  • Likes
    140
  • 303 Beiträge
  • 84 Bedankt
  • Android [root], iPhone
  • Windows, Linux, Mac OS
Das is mir nicht aufgefallen danke:)
Ich dachte es liegt an was anderen.

Aber was nicht alles an Daten anfallen bei der Registry.
mein PC hat wirklich knappe 120.000 Datensätze:)
Jeweils ein Array von 3 Strings.

Vllt lässt sich noch was ändern an der Performance.
Ich vermute mal, das es auf den zusammenhang mit ankommt. Mit Controls zu arbeiten während der Laufzeit ist ja ja sowieso belastend:)

#18
Cube

Cube

    Würfel

  • Banned
  • PIPPIPPIPPIPPIPPIPPIPPIPPIPPIP
  • Likes
    7
  • 819 Beiträge
  • 1062 Bedankt
  • Android, Android [root]
  • Windows, Linux

Über sowas noch nie den Kopf darüber zerbrochen, zumal ich auch nie wirklich mehr als 5 checkboxen nutzte xD

 

Sars Ansatz find ich echt klasse.

Jeder setzt direkt an, wenn jede einzelne checkbox wirklich schon so in der GUI angelegt ist.

Vielleicht kann man sich aber davor schon eine etwas andere Struktur ausdenken.

 

Nehme an in VB.net gibt es auch CheckBoxListe.

Vielleicht kann man damit etwas handlicher arbeiten.

Mh wobei es hier denke ich auch aufs selbe rausläuft mh.

 

Macht das ganze doch nicht einfacher :-3

 

Naja worauf ich hinaus will, vorrausgesetzt es wird noch nach weiteren Lösungsansätzen gesucht:

Vielleicht eine neue Idee zu gestalten, um von den 20 Checkboxen generell schon wegzukommen.

Ich mein, das erscheint mir doch etwas viel ^^

 

Lg

Cube


Jabber: cube@exploit.im

Only with OTR!

 

HQ Password-Recovery-Tool (Browser, Mail uvm.): TripleCCC


#19
juPP

juPP

    Hacker

  • Premium Member
  • Likes
    49
  • 174 Beiträge
  • 61 Bedankt
  • 000000
  • Blackberry
  • Windows, Linux

@juPP: Geniale Zweckentfremdung des HashTabels. :D

Vllt. für Anfänger leichter zu verstehen:

            foreach (Control co in this.Controls)
            {
                if (co is CheckBox)
                {
                    CheckBox ch = (CheckBox)co;

                    if (ch.Checked)
                        final += co.Name + "<>" + GetNextControl(co, true).Text + "\n"; 
                }
            }
Mfg.
SAR

 

Haha ja... ging ja nur um die Methode, ob mans mit ner Hashtable macht oder mit DirectoryEntry oder mit einen mehrdimendionalen Array oder sogar einer eigenen Collection ist ja egal


... hier könnte Ihre Werbung stehen ;)

#20
n1nja

n1nja

    1337

  • Premium Member
  • Likes
    140
  • 303 Beiträge
  • 84 Bedankt
  • Android [root], iPhone
  • Windows, Linux, Mac OS

Also ich bin auch der Meinung wie Cube, das man schon am Design was ändern könnte.

Falls nicht, dann mit den Vorschlag von Sar.

 

Das mit dynamic hab ich versucht. Scheint wirklich bei Controls sehr langsam zu sein.

Man könnte hier aber auch wieder kürzen und direkt die CheckBoxen ansprechen:)

foreach (CheckBox cb in this.Controls)
{
   string txt = (cb.Checked) ? cb.Name+" true" : cb.Name+" false";
}

  • Cube gefällt das



  Thema Forum Themenstarter Statistik Letzter Beitrag

Besucher die dieses Thema lesen:

Mitglieder: , Gäste: , unsichtbare Mitglieder:


This topic has been visited by 54 user(s)


    <Kevin>, adramax, AFK_D4m4ge, Ar@m!s, Avni, B1nary, Benassi, Bl4ck3d, Blackhook, BlackZetsu, bones, Born2Hack, Caruso, confick.ini, Cube, Cyber Tjak, easysurfer, Emalik Xantier, FalkE, Flex.Net, Framerater, G0stF4CE, hackEmcee, Husti_nett, Imperial, InternetFreak, jabba, juPP, Kaban, kafkas, kingkev0, kiwitone, lolorollo, m23, Meikyo, Mk3E, most_uniQue, n1nja, Neonxen, notfound, Onek, paulaner, pdr0, peppi200, Sandoz, SAR, smc2014, Sylax~, Take1T, Terrafaux, ueEqlL, Wizzle, xmmlegends, Z3LuX
Die besten Hacking Tools zum downloaden : Released, Leaked, Cracked. Größte deutschsprachige Hacker Sammlung.