Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Code kürzen
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Elvis



Anmeldungsdatum: 01.06.2006
Beiträge: 818
Wohnort: Deutschland, BW

BeitragVerfasst am: 29.08.2006, 14:00    Titel: Code kürzen Antworten mit Zitat

Weiß jemand, ob es eine Möglichkeit gibt, diesen Code zu kürzen?

Code:

IF a = 1 THEN b = 1
IF c = 1 THEN d = 1
IF e = 1 THEN f = 1
IF g = 1 THEN h = 1



Grüße, Elvis
_________________
Geforce 7300GT (256MB GDDR3, Gainward) -- 2x 512MB (DDR2 800, MDT) -- AMD Athlon64 X2 EE 3800+ -- Asrock ALiveNF5-eSATA2+
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 29.08.2006, 14:23    Titel: Antworten mit Zitat

So vielleicht:
Code:

Dim Zahlen(1 To 8) As Integer

For Pruefen=1 To 8 Step 2
  If Zahlen(Pruefen)=1 Then Zahlen(Pruefen+1)=1
Next Pruefen

Ungetestet, sollte aber funzen. Aja, alle ungeraden Zahlen sind dann a, c, e, g und die Geraden dann eben b, d, f, h. lächeln

Grüße,
Mao
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Elvis



Anmeldungsdatum: 01.06.2006
Beiträge: 818
Wohnort: Deutschland, BW

BeitragVerfasst am: 29.08.2006, 14:46    Titel: Antworten mit Zitat

Danke lächeln
Aber leider kann ich damit nicht viel anfangen, denn die Zahlen die ich überprüfe, sind völlig zufällig. traurig
Aber das konntest du ja nicht wissen... zwinkern
Ich habe gehofft, dass es für THEN (oder auch IF) eine Abkürzung wie ? für PRINT gibt...
Dadurch würd' ich dann etwa 400 KB Code sparen... durchgeknallt


Grüße, Elvis
_________________
Geforce 7300GT (256MB GDDR3, Gainward) -- 2x 512MB (DDR2 800, MDT) -- AMD Athlon64 X2 EE 3800+ -- Asrock ALiveNF5-eSATA2+
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 29.08.2006, 15:28    Titel: Antworten mit Zitat

Rück mal 'nen bissl mehr Infos raus. zwinkern
Wie meinstn zum Beispiel, dass die Zahlen völlig zufällig sind?
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 29.08.2006, 16:31    Titel: Antworten mit Zitat

400KB durch Zeilen wie die oben aufgeführten?! Meiner Rechnung nach müsstest du dann etwa 19500 Stück davon haben!! Hammer
Sowas löst man viel besser mit Array und Schleifen wie Mao schon sagte.
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Elvis



Anmeldungsdatum: 01.06.2006
Beiträge: 818
Wohnort: Deutschland, BW

BeitragVerfasst am: 29.08.2006, 17:16    Titel: Antworten mit Zitat

...60*255 Zeilen... zwinkern
Da ist 400KB ein wenig übertrieben, aber nur ein wenig Zunge rausstrecken
Ich werds aber auch ohne Abkürzung hinkriegen (irgendwie halt). happy
Und wie ich schon sagte, geht das mit Arrays nicht zwinkern


Grüße, Elvis
_________________
Geforce 7300GT (256MB GDDR3, Gainward) -- 2x 512MB (DDR2 800, MDT) -- AMD Athlon64 X2 EE 3800+ -- Asrock ALiveNF5-eSATA2+
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 29.08.2006, 17:56    Titel: Antworten mit Zitat

Wir müssten am besten den Zusammenhang kennen, also Projekt von Dir und was genau Du mit einer solchen IF-Abfrage auswerten möchtest. Möglicherweise gibt es dann einen viel geeigneteren Ansatz für Dein Problem.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 29.08.2006, 18:47    Titel: Antworten mit Zitat

Elvis hat Folgendes geschrieben:
...60*255 Zeilen... zwinkern
Da ist 400KB ein wenig übertrieben, aber nur ein wenig Zunge rausstrecken
Ich werds aber auch ohne Abkürzung hinkriegen (irgendwie halt). happy
Und wie ich schon sagte, geht das mit Arrays nicht zwinkern

Das glaube ich nicht. Wenn so viel redundanter Code tatsächlich nötig sein sollte, dann ist schon der Ansatz verkehrt.
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Elvis



Anmeldungsdatum: 01.06.2006
Beiträge: 818
Wohnort: Deutschland, BW

BeitragVerfasst am: 29.08.2006, 19:09    Titel: Antworten mit Zitat

Das "ein wenig übertrieben" war auf die 500 KB Schätzung bezogen zwinkern
Ich habe schon einen anderen platzsparerenden Ansatz versucht, aber da hat der Speicher für die Variablen nicht gereicht (ich hatte mich schon zurückgehalten)!

Eine Frage:
Wo liegt die Grenze von einer zusammengefassten Bibliothek (aus mehreren Librarys)(kann es im Moment nicht ausprobieren, da mir eine Datei fehlt... traurig )

Auch wenn die Grenze <500 ist, habe ich noch einen Plan B... zwinkern

PS: Verschuche mal, 60/30*255 verschidene Zahlen (ohne ein bestimmtes Muster) in Arrays zu speichern, ohne das der Speicher knapp wird (allein die Codelänge... lachen)


Grüße, Elvis
_________________
Geforce 7300GT (256MB GDDR3, Gainward) -- 2x 512MB (DDR2 800, MDT) -- AMD Athlon64 X2 EE 3800+ -- Asrock ALiveNF5-eSATA2+
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 29.08.2006, 19:13    Titel: Antworten mit Zitat

Große Datenmengen speichert man auch grundsätzlich nicht in den Quellcode, sondern lagert sie in externe Dateien aus. Zeig einfach den betreffenden Code. Ich bin mir relativ sicher, dass wir hier gemeinsam eine bessere Variante finden.
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Elvis



Anmeldungsdatum: 01.06.2006
Beiträge: 818
Wohnort: Deutschland, BW

BeitragVerfasst am: 29.08.2006, 19:32    Titel: Antworten mit Zitat

Ich arbeite an einem Verschlüsselungsprogramm, sodass ich die Verschlüsselungsinformationen wohl kaum in externe Dateien speichern kann happy
Die Dateiverwendung war auch meine erste Option (deshalb Thread: "File in EXE einbinden") ... zwinkern
Also ist mir die Idee gekommen, das ganze in einer Bibliothek zu speichern. Da diese aber dann zu groß wurde, habe ich mehrere Bibliotheken gemacht...
Nun werde ich wahrscheinlich mehrere BAS-Dateien verwenden, und diese durch CHAIN miteinander kommunizieren lassen (jede mit einer Bibliothek (von 7))... cool durchgeknallt
Nun wollte ich nur noch wissen, ob bei einer gelinkten Library die maximale Größe höher liegt... lächeln


Grüße, Elvis
_________________
Geforce 7300GT (256MB GDDR3, Gainward) -- 2x 512MB (DDR2 800, MDT) -- AMD Athlon64 X2 EE 3800+ -- Asrock ALiveNF5-eSATA2+
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 29.08.2006, 19:40    Titel: Antworten mit Zitat

Ich kann dein Wissenstand nicht einschätzen, ebenso wenig deine Verschlüsselung, aber: strukturierst du? (FOR, DO, ...) verwundert
Kann mir's einfach net vorstellen, dass das _so_ groß sein soll...
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 29.08.2006, 19:53    Titel: Antworten mit Zitat

So wie ich herausspüre, geht es um die Unterbringung von beispielsweise Level-Daten u.ä.

QB (eigentlich jeder BASIC-Dialekt) bietet dafür normalerweise READ und DATA, aber wie bereits angesprochen, bist Du mit Datendateien wesentlich flexibler.

Da Du vermutlich noch Programmiereinsteiger bist, Artikel aus meiner Sammlung:

http://www.dreael.ch/Deutsch/BASIC-Knowhow-Ecke/Anfaengerfehler.html

Geht ebenfalls kurz auf das Thema Datenunterbringung ein.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Elvis



Anmeldungsdatum: 01.06.2006
Beiträge: 818
Wohnort: Deutschland, BW

BeitragVerfasst am: 29.08.2006, 20:15    Titel: Antworten mit Zitat

@dreal
Ich bin kein "Einsteiger"... neutral
Und es geht auch nicht um die Unterbringung von Leveldaten, sondern um die Speicherung von einer Verschlüsselungsmethode... neutral
Wenn du dir meinen letzten Post durchgelesen hättest, wüsstest du, dass ich an einem Verschlüsselungsprogramm arbeite, bei dem ich wohl kaum Leveldaten speichern will und auch keine externen Dateien verwenden kann Kopf schütteln

@Mao
Leider kann ich keine Schleifen verwenden, da die Werte, die ich speichere, völlig unterschiedlich sind (und es auch kein Muster gibt)
------------------------------------------------------------------

Kann mir jetzt bitte einer sagen, wie hoch das Limit bei gelinkten Bibliotheken liegt? zwinkern


Grüße, Elvis
_________________
Geforce 7300GT (256MB GDDR3, Gainward) -- 2x 512MB (DDR2 800, MDT) -- AMD Athlon64 X2 EE 3800+ -- Asrock ALiveNF5-eSATA2+
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 29.08.2006, 20:32    Titel: Antworten mit Zitat

Hatte mal 'ne Enigma-Verschlüsselung in Delphi, war nicht mal so groß. Find's jetzt aber net. neutral
Ich nehme an, es geht um die Walzen?
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Elvis



Anmeldungsdatum: 01.06.2006
Beiträge: 818
Wohnort: Deutschland, BW

BeitragVerfasst am: 29.08.2006, 20:44    Titel: Antworten mit Zitat

Jap, Genau! Mein Code ist deshalb so groß, weil ich das ganze sehr ausführlich mache... lächeln


Grüße, Elvis
_________________
Geforce 7300GT (256MB GDDR3, Gainward) -- 2x 512MB (DDR2 800, MDT) -- AMD Athlon64 X2 EE 3800+ -- Asrock ALiveNF5-eSATA2+
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 29.08.2006, 21:56    Titel: Antworten mit Zitat

Elvis hat Folgendes geschrieben:
Ich bin kein "Einsteiger"...

Entschuldigung, falls ich Dich falsch eingeschätzt habe. Die Art der zu Beginn gestellte Frage liess mich dies vermuten...

Elvis hat Folgendes geschrieben:
Und es geht auch nicht um die Unterbringung von Leveldaten, sondern um die Speicherung von einer Verschlüsselungsmethode...

Jetzt passt es als Antwort zur Gegenfrage von meinem ersten Posting schon besser. Ich nehme einmal an, dass Du so etwas wie die sog. S-Boxes der DES-Verschlüsselung im Programm unterbringen möchtest.

Elvis hat Folgendes geschrieben:
Wenn du dir meinen letzten Post durchgelesen hättest, wüsstest du, dass ich an einem Verschlüsselungsprogramm arbeite, bei dem ich wohl kaum Leveldaten speichern will und auch keine externen Dateien verwenden kann

Hier wäre ein Weblink von Deinem Projekt im Anfangsposting noch hilfreich gewesen! Nicht jeder hat Lust, eine Beitragssuche nach Autor machen zu müssen...
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 29.08.2006, 22:27    Titel: Antworten mit Zitat

Hallo

Elvis hat Folgendes geschrieben:
Mein Code ist deshalb so groß, weil ich das ganze sehr ausführlich mache... lächeln


Sehr "ausführlich" oder doch eher "umständlich"? Also eine Enigma-Verschlüsselung hatte ich auch schon mal mit QB geschrieben, soweit ich mich erinnere waren das nur ein paar Dutzend Zeilen. Falls dich das interessiert, kann ich mal danach stöbern. Dabei wurde die erste "Walze" auch wie beim Original nach jedem Zeichen eins weitergedreht, nach einer vollen Umdrehung die zweite um eins usw. Die Walzen habe ich ganz einfach in einer Datei abgelegt, die jeder einsehen konnte. Zum Verschlüsseln musste man ein Wort bzw. eine Zeichenkette eingeben, anhand derer dann die einzelnen Walzen und deren Startposition ausgewählt wurden. Dieses Schlüsselwort war das einzige "geheime". Mit diesem konnte man dann auch wieder entschlüsseln.

Sorry, aber ich denke, wenn du für so ein relativ einfaches Problem einen solchen Riesenaufwand treibst, machst du irgendwas falsch.

Gruss
Skilltronic
_________________
Elektronik und QB? www.skilltronics.de !
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Eisbaer



Anmeldungsdatum: 16.10.2004
Beiträge: 354
Wohnort: Deutschland,Bayern

BeitragVerfasst am: 30.08.2006, 08:45    Titel: QBasic Logic Antworten mit Zitat

Evt. gibt es die Möglichkeit logische Schaltungen einzusetzen.

http://de.wikipedia.org/wiki/Logische_Schaltung

Können aber in QuickBasic etwas abweichen von der Wahrheitstabelle, damit könntest du Zustände umschalten.

Oder evt.

SWAP <Variable 1>, <Variable 2> - Der Wert beider Variablen wird vertauscht

Der SWAP-Befehl eignet sich gut für Sortieralgorithmen aller Art (siehe auch in der Online-Hilfe von QuickBASIC 4.5 zum SWAP-Befehl und Kapitel http://www.antonis.de/qbkochbu/index.htm#hinw


Gruß Eisbaer
_________________
Eigene Webseite:
http://www.eisbaer-studios.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Elvis



Anmeldungsdatum: 01.06.2006
Beiträge: 818
Wohnort: Deutschland, BW

BeitragVerfasst am: 30.08.2006, 10:26    Titel: Antworten mit Zitat

@Skilltronic
Ich speichere die Walzen nicht in externen Dateien, was - denke ich - sicherer ist (und verwende noch ein Passwort durchgeknallt). Dateiverwendung war ja auch meine erste Option, deshalb auch der Thread "File in EXE einbinden". Diese verursachen auch die imense Größe meines Codes. Der Rest des Codes ist auch recht klein... lächeln


Grüße, Elvis
_________________
Geforce 7300GT (256MB GDDR3, Gainward) -- 2x 512MB (DDR2 800, MDT) -- AMD Athlon64 X2 EE 3800+ -- Asrock ALiveNF5-eSATA2+
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz