Autor
|
Tema: Duda de novato en Free pascal (Leído 11,613 veces)
|
yako-_-
Desconectado
Mensajes: 157
Heroes Del Silencio
|
Buenas!!
Mi duda des bien sencilla como puedo imprimir en pantalla en modo consola acentos y Ñ´s en Free Pascal???? los pongo y me muestra caracteres raros. hay alguna librería o algo que re lo permita hacer directamente o tengo que poner en cada letra "char (123)" (el número que sea)
Edito: Otra duda es como puedo cargar una imagen en free pascal? en modo graph o consola un bmp o jpg ¿y música un midi o algo asi?
Gracias un saludo!!!!
|
|
« Última modificación: 5 Octubre 2010, 01:14 am por yako-_- »
|
En línea
|
Para que vivir, pudiendo trabajar los Domingos
Yako-_-
|
|
|
Khronos14
Desconectado
Mensajes: 443
A lie is a lie
|
Para hacer eso tienes que emplear la API de Windows CharToOemBuffA o CharToOemBuffW. En Delphi sería algo así: program Project1; {$APPTYPE CONSOLE} uses Windows, SysUtils; var S: AnsiString; begin S := 'Ejemplo de cadena: ñ, á, í, ó, é'; CharToOemBuffA(PAnsiChar(S), PAnsiChar(S), Length(S)); WriteLn(S); ReadLn; end.
Saludos.
|
|
|
En línea
|
|
|
|
d(-_-)b
|
Tambien puedes seguir este curso muy bueno. Curso de Pascal de Nacho Cabanes# Curso de Pascal, de Nacho Cabanes - Tema 0 - Introducción. # Curso de Pascal, de Nacho Cabanes - Tema 1 - Generalidades de Pascal. # Curso de Pascal, de Nacho Cabanes - Tema 2 - Variables. # Curso de Pascal, de Nacho Cabanes - Tema 3 - Entrada/Salida básica. # Curso de Pascal, de Nacho Cabanes - Tema 4 - Operaciones matemáticas. # Curso de Pascal, de Nacho Cabanes - Tema 5 - Condiciones. # Curso de Pascal, de Nacho Cabanes - Tema 6 - Bucles. # Curso de Pascal, de Nacho Cabanes - Tema 7 - Constantes y tipos. # Curso de Pascal, de Nacho Cabanes - Tema 8 - Procedimientos y funciones. # Curso de Pascal, de Nacho Cabanes - Tema 9 - Otros tipos de datos. # Curso de Pascal, de Nacho Cabanes - Tema 10 - Pantalla en modo texto. # Curso de Pascal, de Nacho Cabanes - Tema 11 - Ficheros (1 - Leer fichero de texto). # Curso de Pascal, de Nacho Cabanes - Tema 11b - Ficheros (2 - Escribir fichero de texto). # Curso de Pascal, de Nacho Cabanes - Tema 11c - Ficheros (3 - Ficheros con tipo). # Curso de Pascal, de Nacho Cabanes - Tema 11d - Ficheros (4 - Ficheros generales). # Curso de Pascal, de Nacho Cabanes - Tema 12 - Creación de unidades. # Curso de Pascal, de Nacho Cabanes - Tema 13 - Variables dinámicas (1). # Curso de Pascal, de Nacho Cabanes - Tema 13b - Variables dinámicas (2). # Curso de Pascal, de Nacho Cabanes - Tema 14 - Gráficos (1). # Curso de Pascal, de Nacho Cabanes - Tema 14b - Gráficos (2: las órdenes más habituales). # Curso de Pascal, de Nacho Cabanes - Tema 14c - Gráficos (3: algunos fuentes de ejemplo). # Curso de Pascal, de Nacho Cabanes - Tema 14d - Gráficos (4: gráficos con TMT Pascal y FPK Pascal). # Curso de Pascal, de Nacho Cabanes - Tema 14e - Incluir los ficheros BGI en el EXE. # Curso de Pascal, de Nacho Cabanes - Tema 15 - Servicios del DOS. # Curso de Pascal, de Nacho Cabanes - Tema 16 - Programación Orientada a Objetos (1). # Curso de Pascal, de Nacho Cabanes - Tema 16b - Programación Orientada a Objetos (2). # Curso de Pascal, de Nacho Cabanes - Tema 16c - Programación Orientada a Objetos (3). # Curso de Pascal, de Nacho Cabanes - Tema 16d - Programación Orientada a Objetos (4). # Curso de Pascal, de Nacho Cabanes - Tema 16e - Programación Orientada a Objetos (5). # Curso de Pascal, de Nacho Cabanes - Tema 16f - Programación Orientada a Objetos (6). # Curso de Pascal, de Nacho Cabanes - Tema 16g - Programación Orientada a Objetos (7). # Curso de Pascal, de Nacho Cabanes - Tema 16h - Programación Orientada a Objetos (8). # Curso de Pascal, de Nacho Cabanes - Tema 17 - El entorno Turbo Vision (1). # Curso de Pascal, de Nacho Cabanes - Tema 17b - El entorno Turbo Vision (2: Ventanas estándar). # Curso de Pascal, de Nacho Cabanes - Tema 17c - El entorno Turbo Vision (3: Ventanas de diálogo). # Curso de Pascal, de Nacho Cabanes - Tema 17d - El entorno Turbo Vision (4: Ventanas de texto). # Curso de Pascal, de Nacho Cabanes - Tema 17e - El entorno Turbo Vision (5: Un fuente de ejemplo). # Curso de Pascal, de Nacho Cabanes - Ampliación 1 - Otras órdenes no vistas. # Curso de Pascal, de Nacho Cabanes - Ampliación 2a - Gráficos sin BGI (1). # Curso de Pascal, de Nacho Cabanes - Ampliación 2b - Gráficos sin BGI (2). # Curso de Pascal, de Nacho Cabanes - Ampliación 2c - Gráficos sin BGI (3). # Curso de Pascal, de Nacho Cabanes - Ampliación 2d - Gráficos sin BGI (4). # Curso de Pascal, de Nacho Cabanes - Ampliación 2e - Gráficos sin BGI (5). # Curso de Pascal, de Nacho Cabanes - Ampliación 3 - Ordenar datos. # Curso de Pascal, de Nacho Cabanes - Ampliación 4 - Overlays. # Curso de Pascal, de Nacho Cabanes - Ampliación 5 - Ensamblador desde Turbo Pascal. Curso: http://www.freepascal.es/cursos.phpsaludos...
|
|
|
En línea
|
Max 400; caracteres restantes: 366
|
|
|
yako-_-
Desconectado
Mensajes: 157
Heroes Del Silencio
|
buenas!!
Gracias por las ayuda a ambos me estoy viendo los tutes de nacho cabanes
Lo de usar la api de windows para cada frase que Writeln('loquesea ñ ó');
tengo que crear una variable???
un saludo
|
|
|
En línea
|
Para que vivir, pudiendo trabajar los Domingos
Yako-_-
|
|
|
Khronos14
Desconectado
Mensajes: 443
A lie is a lie
|
Puedes hacer algo como esto: program Project1; {$APPTYPE CONSOLE} uses Windows, SysUtils; procedure WriteLnOem(Line: AnsiString); begin CharToOemBuffA(PAnsiChar(Line), PAnsiChar(Line), Length(Line)); WriteLn(Line); end; begin WriteLnOem('Prueba con acentos y ñ: á é í...'); WriteLnOem('...'); ReadLn; end.
Saludos.
|
|
|
En línea
|
|
|
|
yako-_-
Desconectado
Mensajes: 157
Heroes Del Silencio
|
Buenas!! Gracias por la ayuda pero e provado con el codigo ( copy paste) y me sale asi A ver si hay otra forma de hacerlo o si estoy haciendo algo mal. Si no es mucho pedir , si me puedes comentar el código te lo agradecería para saber que estoy haciendo. Un saludo y gracias de antemano
|
|
« Última modificación: 7 Octubre 2010, 00:56 am por yako-_- »
|
En línea
|
Para que vivir, pudiendo trabajar los Domingos
Yako-_-
|
|
|
Khronos14
Desconectado
Mensajes: 443
A lie is a lie
|
Fallo mío, hice el código al vuelo y no lo comprobé. program Project1; {$APPTYPE CONSOLE} uses Windows, SysUtils; procedure WriteLnOem(Line: PAnsiChar); var szBuff: PAnsiChar; begin try GetMem(szBuff, StrLen(Line)); //Reservamos memoria CharToOemBuffA(Line, szBuff, StrLen(Line)); // Convierte la cadena Line en formato Oem, szBuff es el destino WriteLn(szBuff); //Escribe la linea en la consola finally FreeMem(szBuff); //Liberamos la memoria end; end; begin WriteLnOem('Ejemplo de cadena: ñ, á, í, ó, é'); WriteLnOem('...'); ReadLn; end.
Saludos.
|
|
|
En línea
|
|
|
|
yako-_-
Desconectado
Mensajes: 157
Heroes Del Silencio
|
Buenas!! Ya me da un poco de apuro escribir otra vez parece que estoy molestando. el tema que que hice un "copy paste" y nada me sale una imagen parecia a la mostrada anteriormente pero con diferentes caracteres . No se si lo dije antes, quizas el tema es que tu me das el codigo de delphi y yo lo estoy compilando en Lazarus. ¿Puede ser ese el problema? Un saludo y gracias de antemano
|
|
|
En línea
|
Para que vivir, pudiendo trabajar los Domingos
Yako-_-
|
|
|
d(-_-)b
|
No es lo mismo copiar un ejemplo que funciona, a algo muy distiso a como lo aplicas.
de todos modos puedes colocar la parte del codigo que te da el problema para echar un ojo, y ver como lo usas o aplicas.
saludos...
|
|
|
En línea
|
Max 400; caracteres restantes: 366
|
|
|
Khronos14
Desconectado
Mensajes: 443
A lie is a lie
|
La verdad me extraña que sea un problema de Lazarus, a lo mejor puede ser debido a tu Sistema Operativo, y que no tenga instaladas todas las fuentes del sistema. No tengo Lazarus instalado para probarlo, pero traduje el código a C y funciona perfectamente. #include <stdio.h> #include <stdlib.h> #include <malloc.h> #include <string.h> #include <windows.h> void WriteLnOem(char* Line) { char* szBuff; if (szBuff != NULL){ CharToOemBuffA (Line , szBuff , strlen(Line )); } } int main() { WriteLnOem("Ejemplo de cadena: ñ, á, í, ó, é"); WriteLnOem("..."); return 1; }
Saludos.
|
|
|
En línea
|
|
|
|
|
|