I'm trying to work with a record to store people names and phones.
It is my first time trying this in pascal but I'm stuck in a condition which never come true cause I don't know how to implement this IF yet.
If I try outside the IF it works, but it never will enter my condition.
tHIS CONDITION IS IN procedure incluir_pessoa.
Main program
program agenda1;
uses agenda1_procedures;
begin
processar_agenda;
end.
Procedures
unit agenda1_procedures;
interface
uses crt, ReadAnyKey1;
type type_sexo = (feminino, masculino, outro);
type Type_pessoa = record
primeiro_nome, ultimo_nome: string;
sexo: type_sexo;
telefone: string;
end;
type type_pessoas = array of type_pessoa;
var pessoa: type_pessoas;
procedure processar_agenda;
procedure imprimir_menu(var escolha: char);
procedure processar_escolha(var escolha: char);
procedure incluir_pessoa(var pessoa: type_pessoas);
implementation
//---------------------------------------
// PROCESSAR AGENDA
//---------------------------------------
procedure processar_agenda;
var escolha: char;
begin
repeat
imprimir_menu(escolha);
processar_escolha(escolha);
until escolha = '0';
end;
//---------------------------------------
// IMPRIMIR MENU
//---------------------------------------
procedure imprimir_menu(var escolha: char);
begin
clrscr;
writeln('****************************************************************************************');
writeln('* MENU *');
writeln('****************************************************************************************');
writeln('* 0-Sair *');
writeln('* 1-Incluir pessoa *');
writeln('* 2-Modificar pessoa *');
writeln('* 3-Excluir pessoa *');
writeln('* *');
writeln('* *');
writeln('****************************************************************************************');
gotoxy(3,9); write('Digite uma escolha: '); read(escolha);
end;
//---------------------------------------
// INCLUIR PESSOA
//---------------------------------------
procedure incluir_pessoa(var pessoa: type_pessoas);
var i: integer;
begin
if length(pessoa) = 0 then
setlength(pessoa,1);
writeln('Incluir pessoa na agenda');
writeln;
readln;
for i:=0 to length(pessoa) do
begin
readln;
//***** CONDITION WHICH NEVER COME TRUE !!!!! <------------------- *****
if pessoa[0].primeiro_nome = ' ' then
begin
write('Primeiro nome: '); readln(pessoa[0].primeiro_nome);
//test
writeln(pessoa[0].primeiro_nome);
readln;
end;
end;
//test
write('Primeiro nome: '); readln(pessoa[0].primeiro_nome);
write('Pessoa:',pessoa[0].primeiro_nome);
readln;
end;
//---------------------------------------
// PROCESSAR escolha
//---------------------------------------
procedure processar_escolha(var escolha: char);
begin
case escolha of
'0': exit;
'1': incluir_pessoa(pessoa);
// 2:
// 3:
end;
end;
end.
Do you want to check if the name is empty? Or if it is a space character? Because in your condition you ask for a space.