Re: String ( Zahl) Formatieren
Verfasst: 01.03.2010 15:32
... nein, ich muss MID nehmen weil der String mit einem ";" endet.
Code: Alles auswählen
Structure strucWert
Vorsilbe.s{2}
VorkommaZahl.s{8}
NachkommaZahl.s{3}
EndStructure
Structure strucData
StructureUnion
VollString.s{13}
TeilString.strucWert
EndStructureUnion
EndStructure
Test.StrucData
Procedure.d Ergebnis(*vStruc.StrucData)
ProcedureReturn ValD(*vStruc\TeilString\VorkommaZahl + "." + *vStruc\TeilString\nachkommaZahl)
EndProcedure
Test\VollString = "FA00001822420"
Debug Ergebnis(Test)
Test\VollString = "FA00144800000"
Debug Ergebnis(Test)
Code: Alles auswählen
Structure strucWert
Vorsilbe.s{2}
VorkommaZahl.s{8}
NachkommaZahl.s{3}
Semikolon.s{1}
EndStructure
Structure strucData
StructureUnion
VollString.s{14}
TeilString.strucWert
EndStructureUnion
EndStructure
Test.StrucData
Procedure.s Ergebnis(*vStruc.StrucData)
ProcedureReturn LTrim(*vStruc\TeilString\VorkommaZahl + "." + *vStruc\TeilString\nachkommaZahl+" KHz", "0")
EndProcedure
Test\VollString = "FA00001822420"
Debug Ergebnis(Test)
Test\VollString = "FA00144800000"
Debug Ergebnis(Test)
ey, da kann man sich richtig auslassen bei den möglichkeitenPelagio hat geschrieben:Es gibt noch eine andere Möglichkeit die eventuell für den Anfängerbereich zu fortgeschritten ist aber als mögliche Studie will ich es aufzeigen
Code: Alles auswählen
EnableExplicit
Structure strucWert
Vorsilbe.s{2}
VorkommaZahl.s{8}
NachkommaZahl.s{3}
EndStructure
Define Test.s
Procedure.d Ergebnis(*vStruc.strucWert)
ProcedureReturn ValD(*vStruc\VorkommaZahl + "." + *vStruc\NachkommaZahl)
EndProcedure
Test = "FA00001822420"
Debug Ergebnis(@Test)
Test = "FA00144800000"
Debug Ergebnis(@Test)
wie leiche man doch so ein semikolon übersieht.elko68 hat geschrieben:... nein, ich muss MID nehmen weil der String mit einem ";" endet.
Code: Alles auswählen
Procedure ChangeString( *Str2Change.String )
PokeC( *Str2Change + 13* SizeOf(Character), PeekC(*Str2Change + 12* SizeOf(Character)))
PokeC( *Str2Change + 12* SizeOf(Character), PeekC(*Str2Change + 11* SizeOf(Character)))
PokeC( *Str2Change + 11* SizeOf(Character), PeekC(*Str2Change + 10* SizeOf(Character)))
PokeC( *Str2Change + 10* SizeOf(Character), Asc(","))
While PeekC( *Str2Change ) < Asc("1") Or PeekC( *Str2Change ) > Asc("9")
PokeC( *Str2Change , Asc(" "))
*Str2Change + SizeOf( Character )
Wend
EndProcedure
a$ = "FA00144800000;"
b$ = "FA00024895000;"
c$ = "FA00001822420;"
ChangeString(@a$)
ChangeString(@b$)
ChangeString(@c$)
Debug a$
Debug b$
Debug c$
lol, stimmt auchelko68 hat geschrieben:...wie mann eine Zeile funktionierenden (vieleicht auch nicht optimalen) Code so erweitern kann ist ja schon erstaunlich
Code: Alles auswählen
; Quelle http://support.microsoft.com/kb/221435
; Sprache Gebietsschemabezeichner
; Afrikaans 1078 (&H436)
; Albanisch 1052 (&H41C)
; Arabisch 1025 (&H401)
; Arabisch (Algerien) 5121 (&H1401)
; Arabisch (Bahrain) 15361 (&H3C01)
; Arabisch (Ägypten) 3073 (&HC01)
; Arabisch (Irak) 2049 (&H801)
; Arabisch (Jordanien) 11265 (&H2C01)
; Arabisch (Kuwait) 13313 (&H3401)
; Arabisch (Libanon) 12289 (&H3001)
; Arabisch (Libyen) 4097 (&H1001)
; Arabisch (Marokko) 6145 (&H1801)
; Arabisch (Oman) 8193 (&H2001)
; Arabisch (Katar) 16385 (&H4001)
; Arabisch (Saudi-Arabien) 1025 (&H401)
; Arabisch (Syrien) 10241 (&H2801)
; Arabisch (Tunesien) 7169 (&H1C01)
; Arabisch (Vereinigte Arabische Emirate) 14337 (&H3801
; Arabisch (Jemen) 9217 (&H2401)
; Armenisch 1067 (&H42B)
; Assamisch 1101 (&H44D)
; Aserbaidschanisch (Kyrillisch) 2092 (&H82C)
; Azerbaidschanisch (Lateinisch) 1068 (&H42C)
; Baskisch 1069 (&H42D)
; Belgisch (Niederländisch) 2067 (&H813)
; Belgisch (Französisch) 2060 (&H80C)
; Bengali 1093 (&H445)
; Portugiesisch (Brasilien) 1046 (&H416)
; Bulgarisch 1026 (&H402)
; Birmanisch 1109 (&H455)
; Belarussisch (Weißrussland) 1059 (&H423)
; Katalanisch 1027 (&H403)
; Chinesisch (Hongkong S.A.R.) 3076 (&HC04)
; Chinesisch (Macao S.A.R.) 5124 (&H1404)
; Chinesisch (vereinfacht) 2052 (&H804)
; Chinesisch (Singapur) 4100 (&H1004)
; Chinesisch (traditionell) 1028 (&H404)
; Kroatisch 1050 (&H41A)
; Tschechisch 1029 (&H405)
; Dänisch 1030 (&H406)
; Niederländisch 1043 (&H413)
; Englisch (Australien) 3081 (&HC09)
; Englisch (Belize) 10249 (&H2809)
; Englisch (Kanada) 4105 (&H1009)
; Englisch (Karibik) 9225 (&H2409)
; Englisch (Irland) 6163 (&H1809)
; Englisch (Jamaika) 8201 (&H2009)
; Englisch (Neuseeland) 5129 (&H1409)
; Englisch (Philippinen) 13321 (&H3409)
; Englisch (Südafrika) 7177 (&H1C09)
; Englisch (Trinidad) 11273 (&H2C09)
; Englisch (Großbritannien) 2057 (&H809)
; Englisch (USA) 1033 (&H409)
; Englisch (Simbabwe) 12297 (&H3009)
; Estnisch 1061 (&H425)
; Färöisch 1080 (&H438)
; Farsi 1065 (&H429)
; Finnisch 1035 (&H40B)
; Französisch 1036 (&H40C)
; Französisch (Kamerun) 11276 (&H2C0C)
; Französisch (Kanada) 3084 (&HC0C)
; Französisch (Elfenbeinküste) 12300 (&H300C)
; Französisch (Luxemburg) 5132 (&H140C)
; Französisch (Mali) 13324 (&H340C)
; Französisch (Monaco) 6156 (&H180C)
; Französisch (Réunion) 8204 (&H200C)
; Französisch (Senegal) 10252 (&H280C)
; Französisch (Westindische Inseln) 7180 (&H1C0C)
; Französisch (Kongo, DRK) 9228 (&H240C)
; Friesisch (Niederlande) 1122 (&H462)
; Gälisch (Irland) 2108 (&H83C)
; Gälisch (Schottland) 1084 (&H43C)
; Galizisch 1110 (&H456)
; Georgisch 1079 (&H437)
; Deutsch 1031 (&H407)
; Deutsch (Österreich) 3079 (&HC07)
; Deutsch (Liechtenstein) 5127 (&H1407)
; Deutsch (Luxemburg) 4103 (&H1007)
; Griechisch 1032 (&H408)
; Gujarati 1095 (&H447)
; Hebräisch 1037 (&H40D)
; Hindi 1081 (&H439)
; Ungarisch 1038 (&H40E)
; Isländisch 1039 (&H40F)
; Indonesisch 1057 (&H421)
; Italienisch 1040 (&H410)
; Japanisch 1041 (&H411)
; Kanada 1099 (&H44B)
; Kashmiri 1120 (&H460)
; Kasachisch 1087 (&H43F)
; Khmer 1107 (&H453)
; Kirgisisch 1088 (&H440)
; Konkani 1111 (&H457)
; Koreanisch 1042 (&H412)
; Laotisch 1108 (&H454)
; Lettisch 1062 (&H426)
; Litauisch 1063 (&H427)
; FYROM (Mazedonisch) 1071 (&H42F)
; Malayalam 1100 (&H44C)
; Malaiisch (Brunei Darussalam) 2110 (&H83E)
; Malaiisch 1086 (&H43E)
; Maltesisch 1082 (&H43A)
; Manipuri 1112 (&H458)
; Marathi 1102 (&H44E)
; Mongolisch 1104 (&H450)
; Nepali 1121 (&H461)
; Norwegisch (Bokmål) 1044 (&H414)
; Norwegisch (Nynorsk) 2068 (&H814)
; Oriya 1096 (&H448)
; Polnisch 1045 (&H415)
; Portugiesisch 2070 (&H816)
; Punjabi 1094 (&H446)
; Rätoromanisch 1047 (&H417)
; Rumänisch 1048 (&H418)
; Rumänisch (Moldawien) 2072 (&H818)
; Russisch 1049 (&H419)
; Russisch (Moldavien) 2073 (&H819)
; Samisch (Lappisch) 1083 (&H43B)
; Sanskrit 1103 (&H44F)
; Serbisch (Kyrillisch) 3098 (&HC1A)
; Serbisch (Lateinisch) 2074 (&H81A)
; Sesothisch 1072 (&H430)
; Sindhi 1113 (&H459)
; Slowakisch 1051 (&H41B)
; Slowenisch 1060 (&H424)
; Sorbisch 1070 (&H42E)
; Spanisch (Traditionell) 1034 (&H40A)
; Spanisch (Argentinien) 11274 (&H2C0A)
; Spanisch (Bolivien) 16394 (&H400A)
; Spanisch (Chile) 13322 (&H340A)
; Spanisch (Kolumbien) 9226 (&H240A)
; Spanisch (Costa Rica) 5130 (&H140A)
; Spanisch (Dominikanische Republik) 7178 (&H1C0A)
; Spanisch (Ecuador) 12298 (&H300A)
; Spanisch (El Salvador) 17418 (&H440A)
; Spanisch (Guatemala) 4106 (&H100A)
; Spanisch (Honduras) 18442 (&H480A)
; Spanisch (Nicaragua) 19466 (&H4C0A)
; Spanisch (Panama) 6154 (&H180A)
; Spanisch (Paraguay) 15370 (H3C0A)
; Spanisch (Peru) 10250 (&H280A)
; Spanisch (Puerto Rico) 20490 (&H500A)
; Spanisch (Spanien-Modern) 3082 (&HC0A)
; Spanisch (Uruguay) 14346 (&H380A)
; Spanisch (Venezuela) 8202 (&H200A)
; Sutu 1072 (&H430)
; Suaheli 1089 (&H441)
; Schwedisch 1053 (&H41D)
; Schwedisch (Finnland) 2077 (&H81D)
; Französisch (Schweiz) 4108 (&H100C)
; Deutsch (Schweiz) 2055 (&H807)
; Italienisch (Schweiz) 2064 (&H810)
; Tadschikisch 1064 (&H428)
; Tamil 1097 (&H449)
; Tatarisch 1092 (&H444)
; Telugu 1098 (&H44A)
; Thailändisch 1054 (&H41E)
; Tibetanisch 1105 (&H451)
; Tsonga 1073 (&H431)
; Tswana 1074 (&H432)
; Türkisch 1055 (&H41F)
; Turkmenisch 1090 (&H442)
; Ukrainisch 1058 (&H422)
; Urdu 1056 (&H420)
; Usbekisch (Kyrillisch) 2115 (&H843)
; Usbekisch (Lateinisch) 1091 (&H443)
; Venda 1075 (&H433)
; Vietnamesisch 1066 (&H42A)
; Walisisch 1106 (&H452)
; Xhosa 1076 (&H434)
; Zulu 1077 (&H435)
Procedure.s MyValF(var.f, lcid = $0407)
Protected hr.l, result.s, VarDest.Variant, varSource.Variant
VarSource\vt = #VT_R4
VarSource\fltVal = var
hr = VariantChangeTypeEx_(VarDest, VarSource, lcid, 0, #VT_BSTR)
If hr = #S_OK
result = PeekS(VarDest\bstrVal, #PB_Any, #PB_Unicode)
Else
result = ""
EndIf
VariantClear_(VarDest)
VariantClear_(VarSource)
ProcedureReturn result
EndProcedure
Procedure.s MyValD(var.d, lcid = $0407)
Protected hr.l, result.s, VarDest.Variant, varSource.Variant
VarSource\vt = #VT_R8
VarSource\dblVal = var
hr = VariantChangeTypeEx_(VarDest, VarSource, lcid, 0, #VT_BSTR)
If hr = #S_OK
result = PeekS(VarDest\bstrVal, #PB_Any, #PB_Unicode)
Else
result = ""
EndIf
VariantClear_(VarDest)
VariantClear_(VarSource)
ProcedureReturn result
EndProcedure
MessageRequester("Result", MyValF(100.5))
MessageRequester("Result", MyVald(123456789.12, $0809))