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:

Mengen / Sets in freeBASIC

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Mao



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

BeitragVerfasst am: 31.01.2007, 19:18    Titel: Mengen / Sets in freeBASIC Antworten mit Zitat

Hallo. lächeln
Nach langem mal wieder 'ne Frage zum programmiertechnischem mit freeBASIC von mir. grinsen

Der ein oder andere kennts evtl.: Mengen bzw. Sets. In Pascal hab ich die Möglichkeit, mit Mengen zu hantieren. Ich poste mal ein kleines Stück Code, müsste auch für "Nicht-Pascaller" verstehbar sein:
Code:

if c is in ['A', 'B', 'C']

bzw. auch:
Code:

if c is in [0..9]

Das Prinzip müsste, as say, selbsterklärend sein, wenn nicht, dann erklär ich's auch.

Wie der Titel halt so vermuten lässt, möchte ich sowas auch in FB verwenden (enorm praktisch). Bitte jetzt nicht mit ASCII-Codes kommen, da ich genau die vermeiden möchte, arbeite ich gern mit Sets. zwinkern

Freue mich über jede Antwort! lächeln

Greets,
Mao
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 31.01.2007, 21:35    Titel: Re: Mengen / Sets in freeBASIC Antworten mit Zitat

Mao hat Folgendes geschrieben:
Ich poste mal ein kleines Stück Code, müsste auch für "Nicht-Pascaller" verstehbar sein:
Code:

if c is in ['A', 'B', 'C']

bzw. auch:
Code:

if c is in [0..9]
..welchen Pascal-Dialekt benutzt du denn ? happy
('is' ist kein Befehlswort in Pascal(weder BP noch FP, VP hab ich noch nicht gefunden..)
Die Anweisung
Code:
If c In ['A', 'B', 'C'] Then Write('Yes');
liefert true, wenn c in der Menge der Buchstaben in eckigen Klammern enthalten ist.
Soweit, ist das also klar..
Bei so einfachen Operationen hilft der Instr()-Befehl:
Code:
IF Instr("ABC", Left(c, 1)) Then
Write("Yes")
Er liefert sogar die Position innerhalb des Strings oder 0(false), wenn das Zeichen nicht vorkommt. Left() deshalb, weil sonst auch Werte wie "AB" und "BC" bewertet würden. Bei Zahlen ist das komplizierter..
Sollen längere Zeichenfolgen erlaubt sein, kannst du dir mit Trennzeichen im String helfen, die gewöhnlich nicht benutzt werden;
Code:
If Instr("§Eingang§Küche§Bad§Wohnzimmer§Ausgang", "§" &Auswahl) Then 'Mach halt irgendwas.."
..allerdings brauchst du dann eine eigene Index-Verwaltung, die dir den gewünschten Wert liefert.
Ob es andere Möglichkeiten in FB gibt?
k.A. grinsen
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 31.01.2007, 22:12    Titel: Antworten mit Zitat

oder:
Code:
Dim c As Integer = 25

Select Case c
Case 0 To 9
  ?"Mach hier was ..", c
Case 10, 15, 20, 25
  ?"Mach dort was ..", c
End Select
Sleep

Code:
Dim c As String ="c"

Select Case c
Case "0" To "9"
  ?"Mach hier was .."
Case "A","c","z"
  ?"Mach dort was .."
End Select
Sleep

_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
vander



Anmeldungsdatum: 03.01.2007
Beiträge: 16

BeitragVerfasst am: 01.02.2007, 11:12    Titel: Antworten mit Zitat

In VB glaub ich, oder wars VBA?, hab ich sowas mal verwendet. Da gabs auch ein spezielles Schlüsselwort/Funktion für, ich komm aber grad nicht drauf. In der Dokumentation von FB ist es mir aber nicht aufgefallen. Oder meinst du nix eingebautes, sondern willst die entsprechende Funktion nachbilden?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mao



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

BeitragVerfasst am: 01.02.2007, 15:34    Titel: Antworten mit Zitat

@ytwinky:
Delphi. Also ObjectPascal.
Das is gehört dort nicht hin stimmt, das kam zustande, da ich vorher gerade eine Weile mit 'ner Menge Objekten gearbeitet hab (nicht die Menge, um die es hier geht, sondern im Sinne von viel grinsen). Und zur Typüberprüfung in einer allgemeingültigen OnClick-Prozedur...
Es muss natürlich in heißen.

/edit:
In ObjectPascal ist "is" ein Operand.

@volta:
Mhm, das gibt es in Pascal zwar auch und geht auch, aber Mengen find ich da irgendwie einfacher zu handhaben, da man einfach nur einmal abfragen brauch, ob ein was von der Menge in dem übergebenem Wert ist. Hier müsst ich ja dann erst noch ein Select Case rumpinseln - also das geht zwar auch, aber ich bin faul... grinsen

@vander:
Ich möchte die Funktion nicht nachbilden, ich will sie nur nutzen. lächeln

Noch mal allgemein. Mit:
Code:

if c in ['A'..'J'] ...

Will ich beispielsweise überprüfen, ob Char c in der Menge 'A' bis 'J' vorkommt. Heißt, ob der Wert im Bereich von A bis J liegt. Das geht zwar auch mit Select Case und intern mit ASCII-Codes, aber das wollt ich ja vermeiden.

Naja, wie dem auch sei, es wäre ja nur Komfort gewesen, der nicht unbedingt nötig ist. zwinkern

Danke aber für alle Antworten! lächeln
Greets,
Mao
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
PMedia



Anmeldungsdatum: 14.08.2006
Beiträge: 2847

BeitragVerfasst am: 01.02.2007, 15:45    Titel: Antworten mit Zitat

LOL (Wiedermal... mit den Augen rollen )

Warum schnappst dir net den FB-Compiler-Code und baust dir dieses Teil ein?

FB::Mao happy
Kannst ja dann als Exorc-Standart-Sprache nutzen xD
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


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

BeitragVerfasst am: 01.02.2007, 19:23    Titel: Re: Mengen / Sets in freeBASIC Antworten mit Zitat

ytwinky hat Folgendes geschrieben:
Code:
If Instr("§Eingang§Küche§Bad§Wohnzimmer§Ausgang", "§" &Auswahl) Then 'Mach halt irgendwas.."

Ein kleiner Bug steckt jedoch noch hier drin: Im Fall von Auswahl="Wohnz", "Kü" usw. versagt obiger Code. Deshalb kleine Verfeinerung:
Code:
If Instr("§Eingang§Küche§Bad§Wohnzimmer§Ausgang§", "§" & Auswahl & "§") Then 'Mach halt irgendwas.."

Man beachte, dass sowohl zu Beginn als auch am Ende das Trennzeichen vorhanden sein muss.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 01.02.2007, 20:46    Titel: Antworten mit Zitat

Ooops, stimmt..grinsen
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
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