PREGUNTAS CONTESTADAS - Pascal/Turbo Pascal

 Hay un total de 203 Preguntas.<<  >> 

    Pregunta:  65545 - LLAMAR UN .EXE CON LIBERIA DOS DEL 7.0
Autor:  marce rodriguez
mmm kerria saber como llamar un .exe desde un pas de turbo pascal, digamos que el programa que escribi, llame a otro en cierta direccion en la computadora, y que lo ejecute cuando corre el que escribi, la relacion seria:

Codigo fuente mio compilado (sin ejecutar)

archivo de lotes .exe cualquiera en C:-------

compilo y corro mi archivo fuente

corre y inicia el archivo de lotes .exe en C:----

si hay una escritura especifica por favor detallar!! gracias , preferiblemente que sea con la libreria del dos de pascal que trae por defecto, y si no es posible con esa libreria, que alguien me pase una con la que si se pueda , gracias!!! XD
  Respuesta:  ramon
{Ejecución desde programa pascal de un exe y retorno al programa
pascal llamador}

program ejecuta;
{$M $4000,0,0}
uses
crt, Dos;
var
progra, cmd : string;
begin
write('Entre Nombre Camino y Nombre Programa : ');
readln(progra);
cmd := ' ';
swapvectors;
exec(progra, cmd);
swapvectors;
end.

    Pregunta:  65846 - VALIDACION EN PACAL
Autor:  jose cedeño
como puedo hacer los mecanismos de validacion de entradas de datos y validar que no existan dos estudiantes con la misma cedula o estudiantes en la base de datos. y tambien como validar de modo que cuando escriba la cedula si presiono una letra por error no se me salga el programa. gracias
  Respuesta:  ramon
{Este pequeño programa de entrada de datos de estudiantes en un
array te presenta la forma mas segura de entrada de datos a sin como
la comprobación de una entrada repetida de cédula.
Las entradas son asta 100 estudiantes nada mas tanto para las
entradas como la presentación pero si guardas en archivo serán las
que tu quieras.

program valida;

uses
crt;
type
datosestudiante = record
cedula : longint;
nombre : string[20];
pelli1 : string[20];
pelli2 : string[20];
end;
var
f : file of datosestudiante;
datos : array[1..100] of datosestudiante;
cont : integer;
tecla : char;
cedul : longint;
eldato : string[20];

procedure entradadatos(xe, ye : integer; que : char);
var
entrada : string;
error, long : integer;
lodat : longint;
begin
fillchar(entrada,256,' ');
entrada[0] := chr(255);
long := 1;
fillchar(eldato,21,' ');
eldato[0] := chr(20);
cedul := 0;
gotoxy(xe + long,ye);
repeat
tecla := readkey;
if (que = 'n') or (que = 'N') then
begin
if tecla in[#48..#57] then
begin
entrada[long] := tecla;
entrada[0] := chr(long);
gotoxy(xe + long, ye);write(entrada[long]);
long := long + 1;
if long > 12 then
long := 12;
end;
end;
if (que = 't') or (que = 'T') then
begin
if tecla in[#35..#125,#164,#165] then
begin
entrada[long] := tecla;
entrada[0] := chr(long);
gotoxy(xe + long, ye);write(entrada[long]);
long := long + 1;
if long > 20 then
long := 20;
end;
end;
if tecla = #8 then
begin
long := long - 1;
if (que = 'n') or (que = 'N') then
begin
if long > 12 then
long := 12;
end;
if (que = 't') or (que = 'T') then
begin
if long > 20 then
long := 20;
end;
entrada[long] := ' ';
entrada[0] := chr(long);
gotoxy(xe + long, ye);write(entrada[long]);
end;
until tecla = #13;
if (que = 'n') or (que = 'N') then
begin
val(entrada,lodat,error);
if error <> 0 then
begin
delete(entrada,error,1);
val(entrada,lodat,error);
end;
cedul := lodat;
end;
if (que = 't') or (que = 'T') then
begin
eldato := copy(entrada,1,length(entrada));
end;
end;

procedure estudiantedatos;
var
revi : integer;
datorepe : boolean;
tec : char;
begin
cont := 1;
datorepe := false;
repeat
gotoxy(12,2);write('Entrada Datos Estudiante');
gotoxy(12,4);write('N§ Cedula : ');
gotoxy(12,5);write('Nombre : ');
gotoxy(12,6);write('1§ Apellido : ');
gotoxy(12,7);write('2§ Apellido : ');
entradadatos(25,4,'n');
for revi := 1 to cont do
if datos[revi].cedula = cedul then
begin
datorepe := true;
end;
if datorepe = false then
begin
datos[cont].cedula := cedul;
entradadatos(25,5,'t');
datos[cont].nombre := eldato;
entradadatos(25,6,'t');
datos[cont].pelli1 := eldato;
entradadatos(25,7,'t');
datos[cont].pelli2 := eldato;
cont := cont + 1;
datorepe := false;
end
else
begin
gotoxy(10,12);write('La Cedula Esta Repetida Entre Otravez');
gotoxy(10,13);write('Pulse Enter');
repeat
tec := readkey;
until tec = #13;
end;
if datorepe = false then
begin
gotoxy(10,12);write('Desea Entrar Mas Datos [S/N]');
repeat
tec := readkey;
until tec in['s','S','n','N'];
end;
clrscr;
until tec in['n','N'];
clrscr;
writeln('Los Datos Entrados Son');
writeln;
for revi := 1 to cont - 1 do
writeln(datos[revi].cedula,' ',datos[revi].nombre,' ',
datos[revi].pelli1,' ',datos[revi].pelli2);
readln;
end;

begin
clrscr;
estudiantedatos;
end.

    Pregunta:  66142 - ERROR 26: TYPE MISMATCH
Autor:  Diana Juarez
Necesito ayuda
Es que me aparece Error 26: Type mismatch y me lo marca en esta parte: respuesta='N'

El error me lo marca antes del signo =
¿Podrían decirme en que estoy mal? Por favor
¡Gracias!
  Respuesta:  ramon
Respuesta no es una variable char no son compatibles

|<  <<  11 12 13 14 15 16 17 18 19 20 21  >>  >|