{-------------------------------------------------------------}
{              cartaVox - gerente de apelidos
{-------------------------------------------------------------}

unit carApeli;
interface

uses winTypes, winProcs, strings,
     dvcrt, dvWin, carVars, carMsg, carUtil;

function buscaApelido (nomeBusc: string): string;
procedure trocaApelido (nomeDest, valorNovo: string);
procedure editarApelidos;

implementation

{--------------------------------------------------------}
{          busca um apelido em APELIDOS.INI
{--------------------------------------------------------}

function buscaApelido (nomeBusc: string): string;
var
    keyName, result, amb: array [0..144] of char;
begin
    strPCopy (keyName, nomeBusc);
    strPCopy (amb, nomeArqApelidos);

    GetPrivateProfileString('APELIDOS', KeyName, '', result, 80, amb);
    buscaApelido := strPas (result);
end;

{--------------------------------------------------------}
{                   cria um apelido
{--------------------------------------------------------}

procedure trocaApelido (nomeDest, valorNovo: string);
var
    keyName, newStr, amb: array [0..144] of char;
begin
    strPCopy (keyName, nomeDest);
    strPCopy (newStr, valorNovo);
    strPCopy (amb, nomeArqApelidos);
    WritePrivateProfileString('APELIDOS', KeyName, newStr, amb);
end;

{-------------------------------------------------------------}
{                       editar apelidos
{-------------------------------------------------------------}

procedure editarApelidos;
var c1, c2: char;
    nomeProg, apelido, nome, endEletr: string;
begin
    writeln;
    textBackground (RED);
    mensagem ('CTEDIAPE', 1);   {'Editando arquivo de apelidos'}
    textBackground (BLACK);  clreol;

    mensagem ('CTINSEDI', 0);   {'Deseja Inserir ou Editar ? '}
    sintLeTecla (c1, c2);
    writeln;
    if upcase (c1) = 'I' then
        begin
            mensagem ('CTINFAPE', 0);  {'Informe o apelido: '}
            sintReadln (apelido);
            if apelido = '' then
                begin
                    mensagem ('CTDESIST', 1);    {'Desistiu...'}
                    exit;
                end;

            mensagem ('CTINFNOM', 0);  {'Informe o nome: '}
            sintReadln (nome);
            if nome <> '' then
                nome := '"' + nome + '"';

            mensagem ('CTINFEND', 0);  {'Informe o endereço eletrônico: '}
            sintReadln (endEletr);
            if endEletr = '' then
                begin
                    mensagem ('CTDESIST', 1);    {'Desistiu...'}
                    exit;
                end;

            trocaApelido (apelido, nome + ' <'+ endEletr + '>');
        end
    else
    if upcase (c1) = 'E' then
        begin
            nomeProg := sintAmbiente ('CARTAVOX', 'EDITOR');
            if executaProg (nomeProg, dirRecebe, nomeArqApelidos) then;
            esperaProgVoltar;
        end
    else
    if c1 <> ESC then
        mensagem ('CTOPCINV', 1);   {'Opção inválida'}

end;

end.
