Colección de citas famosas - Slogan de motivación - Utilice Delphi para programar números y generar automáticamente números de caracteres chinos

Utilice Delphi para programar números y generar automáticamente números de caracteres chinos

Si simplemente convierte números a caracteres chinos, es decir, 345 a 345, sólo necesita crear dos matrices.

NumArray (0.1.2, 3.4, 5.6, 7.8, 9)

ChsArray ("cero", "uno", "dos", "tres", "cuatro", "Cinco", "Seis", "Siete", "Ocho", "Nueve")

Luego escriba el código para determinar el valor de cada dígito, busque el subíndice en la matriz de enteros correspondiente y comience desde la matriz de caracteres chinos Obtenga el carácter chino correspondiente al subíndice.

Si quieres convertir 345 a 345. Luego te doy una función, puedes llamarla directamente

Función TForm1. FNumToChinese (Const n: Real): String;

Constante

CHS num:WideString ='0123456789-RMB 10 mil millones de yuanes y una moneda de diez centavos';

CHS char: Cadena de matriz [0..1, 0..12] =

(

("cero yuanes", "cero cien", "cero mil millones", "cero mil", "cero millones", "cero mil millones", "cero millones", "cero mil millones", "cero cero", "cero mil millones", "cero mil millones", "cero mil millones"),

("yuan", "cero", "cero", "cero", "diez mil", "cien millones", "cien millones", "cero", "cero", "diez mil", "cien millones" , "yuan" ")

);

Definir variables

I: Entero;

StrNum, StrTemp:WideString;

Inicio

Resultado:="";

StrNum:= Format('% 15d', [Round(n * 100)]);

Para i := 0 a 14 haz

Iniciar

StrTemp:= Copiar(StrNum, i+1, 1);

Si StrTemp = R_SPACE luego

p>

Continuar

Otros

Resultado:= Resultado+CHS num【StrToInt(StrTemp)+1】+R _ SPACE+CHS num【 I+13】+R _ SPACE;

Fin;

Para i:= 0 a 12

Inicio

Resultado: = string place(Resultado, CHS char[0, I], CHS char[1, I], [rfReplaceAll]);

Si Pos('cero', resultado) = 0, entonces.

Resultado:= StringReplace(resultado,'ángulo cero','cero',[rfReplaceAll])

Otro

Resultado:= lugar de cadena(Resultado, 'Ángulo cero', 'entero', [rfReplaceAll]);

Resultado:= lugar de cadena (Resultado, cero, '', [rfReplaceAll]); p> p>

Fin;