elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 21:44  


Tema destacado: Únete al Grupo Steam elhacker.NET

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General (Moderador: Littlehorse)
| | |-+  Duda de novato en Free pascal
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda de novato en Free pascal  (Leído 1,928 veces)
yako-_-

Desconectado Desconectado

Mensajes: 121


Heroes Del Silencio


Ver Perfil
Duda de novato en Free pascal
« en: 5 Octubre 2010, 01:08 »

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 por yako-_- » En línea

Para que vivir, pudiendo trabajar los Domingos

                                                                Yako-_-
Khronos14

Desconectado Desconectado

Mensajes: 285


A lie is a lie


Ver Perfil WWW
Re: Duda de novato en Free pascal
« Respuesta #1 en: 5 Octubre 2010, 10:55 »

Para hacer eso tienes que emplear la API de Windows CharToOemBuffA o CharToOemBuffW. En Delphi sería algo así:

Código
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

el-viejo


Desconectado Desconectado

Mensajes: 1.257



Ver Perfil WWW
Re: Duda de novato en Free pascal
« Respuesta #2 en: 5 Octubre 2010, 11:07 »

Tambien puedes seguir este curso muy bueno.

Curso de Pascal de Nacho Cabanes

Citar
# 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.php


saludos...
En línea

yako-_-

Desconectado Desconectado

Mensajes: 121


Heroes Del Silencio


Ver Perfil
Re: Duda de novato en Free pascal
« Respuesta #3 en: 6 Octubre 2010, 00:33 »

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 Desconectado

Mensajes: 285


A lie is a lie


Ver Perfil WWW
Re: Duda de novato en Free pascal
« Respuesta #4 en: 6 Octubre 2010, 00:38 »

Puedes hacer algo como esto:

Código
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 Desconectado

Mensajes: 121


Heroes Del Silencio


Ver Perfil
Re: Duda de novato en Free pascal
« Respuesta #5 en: 7 Octubre 2010, 00:54 »

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 por yako-_- » En línea

Para que vivir, pudiendo trabajar los Domingos

                                                                Yako-_-
Khronos14

Desconectado Desconectado

Mensajes: 285


A lie is a lie


Ver Perfil WWW
Re: Duda de novato en Free pascal
« Respuesta #6 en: 7 Octubre 2010, 01:13 »

Fallo mío, hice el código al vuelo y no lo comprobé.

Código
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 Desconectado

Mensajes: 121


Heroes Del Silencio


Ver Perfil
Re: Duda de novato en Free pascal
« Respuesta #7 en: 10 Octubre 2010, 23:56 »

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-_-
el-viejo


Desconectado Desconectado

Mensajes: 1.257



Ver Perfil WWW
Re: Duda de novato en Free pascal
« Respuesta #8 en: 11 Octubre 2010, 01:05 »

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

Khronos14

Desconectado Desconectado

Mensajes: 285


A lie is a lie


Ver Perfil WWW
Re: Duda de novato en Free pascal
« Respuesta #9 en: 11 Octubre 2010, 01:16 »

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.

Código
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <string.h>
#include <windows.h>
 
void WriteLnOem(char* Line)
{
char* szBuff;
 
   szBuff = (char*) malloc(strlen(Line) + 1);
   if (szBuff != NULL){
       CharToOemBuffA(Line, szBuff, strlen(Line));
       szBuff[strlen(Line)] = 0;
       puts(szBuff);
       free(szBuff);
   }    
}
 
 
int main()
{
   WriteLnOem("Ejemplo de cadena: ñ, á, í, ó, é");
   WriteLnOem("...");
   system("pause>null");
return 1;
}
 


Saludos.
En línea

yako-_-

Desconectado Desconectado

Mensajes: 121


Heroes Del Silencio


Ver Perfil
Re: Duda de novato en Free pascal
« Respuesta #10 en: 14 Octubre 2010, 23:56 »

Buenas!!

Ahora que lo comentas tuve que borrar idiomas por que el windows que instale venia distribución México y estoy en España y tuve que andar en los teclados y tal.

Con referente al código lo puse tal cual aquí os pongo dos capturas:

Código fuente:



Corriendo:




Gracias de antemano como siempre y gracias por el interés mostrado

Un saludo!!

En línea

Para que vivir, pudiendo trabajar los Domingos

                                                                Yako-_-
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda con OllyScript Alloc Free
Ingeniería Inversa
.:UND3R:. 4 262 Último mensaje 4 Noviembre 2011, 17:54
por .:UND3R:.
Programar un Navegador web en Free Pascal (Linux)
GNU/Linux
¡Micronet! 2 622 Último mensaje 2 Enero 2012, 00:36
por ¡Micronet!
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines