Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Ralf
Anmeldungsdatum: 27.07.2012 Beiträge: 5
|
Verfasst am: 27.07.2012, 08:50 Titel: Studi im Sommerjob |
|
|
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...
Vielen Dank schon jetzt.
lg Ralf |
|
Nach oben |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 27.07.2012, 09:01 Titel: |
|
|
quick and dirty
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 |
|
 |
Ralf
Anmeldungsdatum: 27.07.2012 Beiträge: 5
|
Verfasst am: 27.07.2012, 09:05 Titel: |
|
|
Vielen Dank ich werde das gleich mal ausprobieren! |
|
Nach oben |
|
 |
Ralf
Anmeldungsdatum: 27.07.2012 Beiträge: 5
|
Verfasst am: 27.07.2012, 09:19 Titel: |
|
|
Vielen Dank, das klappt!
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 |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 27.07.2012, 09:27 Titel: |
|
|
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 |
|
 |
Ralf
Anmeldungsdatum: 27.07.2012 Beiträge: 5
|
Verfasst am: 27.07.2012, 09:53 Titel: |
|
|
ahhhhaaa! jetzt ist der auch der langsame nachgekommen..! ist ja schon alles perfekt!!
danke, danke werde dich heut nacht ins nachtgebet miteinschliessen! |
|
Nach oben |
|
 |
ALWIM

Anmeldungsdatum: 08.08.2006 Beiträge: 1048 Wohnort: Niederbayern
|
Verfasst am: 27.07.2012, 13:01 Titel: |
|
|
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 |
|
 |
ThePuppetMaster

Anmeldungsdatum: 18.02.2007 Beiträge: 1839 Wohnort: [JN58JR]
|
Verfasst am: 27.07.2012, 21:22 Titel: |
|
|
@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 |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 28.07.2012, 05:31 Titel: |
|
|
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 |
|
 |
Cherry
Anmeldungsdatum: 20.06.2007 Beiträge: 249
|
Verfasst am: 08.08.2012, 22:23 Titel: |
|
|
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 |
|
 |
ThePuppetMaster

Anmeldungsdatum: 18.02.2007 Beiträge: 1839 Wohnort: [JN58JR]
|
Verfasst am: 08.08.2012, 22:24 Titel: |
|
|
stimmt .. muss auch -1 sein. (wurde korrigiert)
MfG
TPM _________________ [ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ] |
|
Nach oben |
|
 |
Ralf
Anmeldungsdatum: 27.07.2012 Beiträge: 5
|
Verfasst am: 15.08.2012, 16:49 Titel: Zusätzliche Frage: |
|
|
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 |
|
 |
ThePuppetMaster

Anmeldungsdatum: 18.02.2007 Beiträge: 1839 Wohnort: [JN58JR]
|
Verfasst am: 15.08.2012, 17:17 Titel: |
|
|
schwer zu sagen. zeige mal den sourcecode.
MfG
TPM _________________ [ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ] |
|
Nach oben |
|
 |
|