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:

Studi im Sommerjob

 
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
Ralf



Anmeldungsdatum: 27.07.2012
Beiträge: 5

BeitragVerfasst am: 27.07.2012, 08:50    Titel: Studi im Sommerjob Antworten mit Zitat

Guten Tag,

Ich bin während den Semesterferien für eine Firma ein Berechnungs-Programm am überarbeiten. Ich kenne mich mit Freebasic leider nicht all zu gut aus und habe mich gerade einmal eine Woche eingearbeitet... Dieses Portal jedoch war perfekt um diese Sprache einwenig zu lernen.

Zu meinem Problem:
Der Benutzer gibt im Programm seinen gewünschten Materialname als string ein: z.B. "S235JR" oder "X2CrNi18-9"
Nun soll es möglich sein, dass der Benutzer auch s235jr eingibt oder s 235 j r sprich die Gross/Kleinschreibung soll nicht beachtet werden, Abstände sollen keinen Einfluss haben und - oder _ sollten auch keinen Einfluss auf die Eingabe haben.

Zu erwähnen, meine Freebasic-Fähigkeiten sind relativ beschränkt. Ich bin schon froh, wenn alles mit Funktionen/Subs funktioniert. Ich habe noch keinen einzigen eigenen Typ erstellt weder Konstruktoren... happy

Vielen Dank schon jetzt.
lg Ralf
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 27.07.2012, 09:01    Titel: Antworten mit Zitat

quick and dirty zwinkern

geht bestimmt noch optimaler aber verdeutlicht schonmal die Möglichkeiten...

Code:

Function valInpString(byval InpString as String) as String
    Dim SLen as Integer = Len(InpString)
    Dim OutString as String
    Dim InpChr as Integer
    Dim OutChr as Integer
   
    For l as Integer=0 to SLen-1
        InpChr = InpString[l]
        OutChr = InpChr
       
        If (InpChr<>32) and (InpChr<>35) and (InpChr<>asc(chr(",")) Then 'leerzeichen(" "), raute("#"), komma(","), ignorieren
            If (InpChr = 95) Then OutChr = 45 'wenn "_" zu "-" ändern
           
            OutString += ucase(chr(OutChr))
        End If
    Next l
   
    return OutString
End Function

?valInpString("ab c 1 2 3_ rb")
sleep

_________________


Zuletzt bearbeitet von Eternal_pain am 27.07.2012, 09:25, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Ralf



Anmeldungsdatum: 27.07.2012
Beiträge: 5

BeitragVerfasst am: 27.07.2012, 09:05    Titel: Antworten mit Zitat

Vielen Dank ich werde das gleich mal ausprobieren!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Ralf



Anmeldungsdatum: 27.07.2012
Beiträge: 5

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

Vielen Dank, das klappt! lächeln
In dem Falle kann man so alle möglichen Zeichen ignorieren oder umbennen. perfekt!

Nun bleibt nur noch die Frage, ob man in der gleichen Art die Hross/Kleinschreibung umgehen kann?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 27.07.2012, 09:27    Titel: Antworten mit Zitat

Hab den Code minimal erweitert um die Möglichkeiten der Abfragen aufzuzeigen.
Bzgl. der Gross/Kleinschreibung solltest Du Dir in der Referenz mal lcase und ucase ansehen...
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Ralf



Anmeldungsdatum: 27.07.2012
Beiträge: 5

BeitragVerfasst am: 27.07.2012, 09:53    Titel: Antworten mit Zitat

ahhhhaaa! jetzt ist der auch der langsame nachgekommen..! lächeln ist ja schon alles perfekt!!
danke, danke werde dich heut nacht ins nachtgebet miteinschliessen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ALWIM



Anmeldungsdatum: 08.08.2006
Beiträge: 1048
Wohnort: Niederbayern

BeitragVerfasst am: 27.07.2012, 13:01    Titel: Antworten mit Zitat

Ich würde beim Material noch zwischen Streckgrenze und Zugfestigkeit unterscheiden. Man kann dann beides am Bildschirm ausgeben.

St 37 = allgemeiner Baustahl mit einer Zugfestigkeit von 370 Newton pro Quadratkilometer.

S235 = allgemeiner Baustahl mit einer Streckgrenze von 235 Newton pro Quadratkilometer.

X2CrNi18-9 = Hochlegierter Chrom-Nickelstahl mit 4,5% Chrom und 2,25% Nickel und 0,02 % Kohlenstoff

Kohlenstoff hat Faktor 100
Chrom bzw. Nickel Faktor 4

St37 ist die alte Bezeichnung und S235 die neue. Der Unterschied liegt einmal in der Angabe von der Zugfestigkeit und einmal in der Angabe von der Streckgrenze.

Zitat:
Bin Metaller! Darum kenne ich mich darin aus.


Gruß
ALWIM
_________________
SHELL SHUTDOWN -s -t 05
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1839
Wohnort: [JN58JR]

BeitragVerfasst am: 27.07.2012, 21:22    Titel: Antworten mit Zitat

@Eternal_pain

evenuell ist dies etwas übersichtlicher

Code:

Function valInpString(byval InpString as String) as String
    Dim OutString as String
    For l as Integer=1 to Len(InpString) 'ist wichtig hier mit 1 zu beginnen.
                                         'wenn InpString = "" dann gibt es mit 0 als start einen MEA!
                                         'Alternativ nach Funktion einstieg auf "" prüfen und returnen
        Select Case InpString[l - 1]
            Case 32 'leerzeichen
            Case 35 '#
            Case 44 ',
            'weitere "fälle"
            Case Else
                OutString += UCase(Chr(InpString[l - 1]))
        End Select
    Next l
    return OutString
End Function



MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]


Zuletzt bearbeitet von ThePuppetMaster am 08.08.2012, 22:24, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 28.07.2012, 05:31    Titel: Antworten mit Zitat

Wollte erst auch Select Case verwenden, allerdings schien mir diese leer cases sinnlos. irgendwie genauso wenn ich schreiben würde

Code:
If irgendwas then
'nichts'
else
'auch nichts'
end if


Aber muss Dir zustimmen das es übersichtlicher ist, vorallem wenn es mehr als nur 1-2 Zeichen werden die geändert und/oder ignoriert werden sollen...
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Cherry



Anmeldungsdatum: 20.06.2007
Beiträge: 249

BeitragVerfasst am: 08.08.2012, 22:23    Titel: Antworten mit Zitat

ThePuppetMaster hat Folgendes geschrieben:
@Eternal_pain

evenuell ist dies etwas übersichtlicher

Code:

Function valInpString(byval InpString as String) as String
    Dim OutString as String
    For l as Integer=1 to Len(InpString) 'ist wichtig hier mit 1 zu beginnen.
                                         'wenn InpString = "" dann gibt es mit 0 als start einen MEA!
                                         'Alternativ nach Funktion einstieg auf "" prüfen und returnen
        Select Case InpString[l - 1]
            Case 32 'leerzeichen
            Case 35 '#
            Case 44 ',
            'weitere "fälle"
            Case Else
                OutString += UCase(Chr(InpString[l]))
        End Select
    Next l
    return OutString
End Function



MfG
TPM


Da kann was nicht stimmen, erst hast du InpString[l - 1] und unten dann InpString[l]...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1839
Wohnort: [JN58JR]

BeitragVerfasst am: 08.08.2012, 22:24    Titel: Antworten mit Zitat

stimmt .. muss auch -1 sein. (wurde korrigiert)


MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Ralf



Anmeldungsdatum: 27.07.2012
Beiträge: 5

BeitragVerfasst am: 15.08.2012, 16:49    Titel: Zusätzliche Frage: Antworten mit Zitat

Guten Tag,

Ich habe das Programm soweit fertig nur eine letzte Frage:
Am Ende des Programms wird aus der Tabelle ein Spannungswert interpoliert. Dieser kann ich auch mit Print ausgeben. Nun schreibe ich am ende:
print Wert
End
Das schwarze Ausgabefenster sollte dann automatisch schliessen
Dies geschieht aber nur teilweise, wenn ich das programm neu starte schliesst es mal, mal bleibt es einfach offen und ich muss es manuel schliessen. Deute dies nun auf einen Programmierfehler meinerseites hin oder ist das normal??

Ich danke nochmals für die Hilfe
freundliche Grüsse
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1839
Wohnort: [JN58JR]

BeitragVerfasst am: 15.08.2012, 17:17    Titel: Antworten mit Zitat

schwer zu sagen. zeige mal den sourcecode.


MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
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 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