| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen   | 
	
	
	
		| Autor | 
		Nachricht | 
	
	
		Ralf
 
 
  Anmeldungsdatum: 27.07.2012 Beiträge: 5
 
  | 
		
			
				 Verfasst am: 27.07.2012, 07: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, 08: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, 08:25, insgesamt einmal bearbeitet | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		Ralf
 
 
  Anmeldungsdatum: 27.07.2012 Beiträge: 5
 
  | 
		
			
				 Verfasst am: 27.07.2012, 08: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, 08: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, 08: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, 08: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, 12: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, 20: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, 21:24, insgesamt einmal bearbeitet | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		Eternal_pain
 
  
  Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
  | 
		
			
				 Verfasst am: 28.07.2012, 04: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, 21: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, 21: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, 15: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, 16:17    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				schwer zu sagen. zeige mal den sourcecode.
 
 
 
MfG
 
TPM _________________ [ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ] | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		 |