Problemas com a função LeftBStr
Caros amigos,
tenho a seguinte função do Delphi:
LeftBStr(texto: AnsiString; numero: Integer): AnsiString;
begin
end;
Ao ler um arquivo texto com Readln obtenho a seguinte linha:
00001|12122|PAULO SERGIO DE OLIVEIRA|00000|0099
Este valor estou armazenando na variável s.
Se tento usar a seguinte instrução:
if LeftBStr(s, 5) = ´00001´ then
label1.caption := s
não é mostrado nada no label.
Alguém tem uma idéia do que pode ser?
Obrigado pela atenção de todos.
tenho a seguinte função do Delphi:
LeftBStr(texto: AnsiString; numero: Integer): AnsiString;
begin
end;
Ao ler um arquivo texto com Readln obtenho a seguinte linha:
00001|12122|PAULO SERGIO DE OLIVEIRA|00000|0099
Este valor estou armazenando na variável s.
Se tento usar a seguinte instrução:
if LeftBStr(s, 5) = ´00001´ then
label1.caption := s
não é mostrado nada no label.
Alguém tem uma idéia do que pode ser?
Obrigado pela atenção de todos.
Jorgeolimpia
Curtidas 0
Respostas
Massuda
17/12/2004
tenho a seguinte função do Delphi:
LeftBStr(texto: AnsiString; numero: Integer): AnsiString;
begin
end;
[...]Se tento usar a seguinte instrução:
if LeftBStr(s, 5) = ´00001´ then
label1.caption := s
não é mostrado nada no label.
Sua função LeftBStr não está implementada ou você omitiu a implementação quando postou aqui?Se não estiver implementada então está funcionando corretamente: como está retorna uma string vazia e o caption do label nunca vai receber o valor da string s.
GOSTEI 0
Jorgeolimpia
17/12/2004
Caro Massuda,
o código completo é este:
implementation
{$R *.dfm}
function LeftBStr(line: AnsiString; number: Integer): AnsiString;
begin
end;
procedure TForm1.Button1Click(Sender: TObject);
var
t1: TextFile;
s: string;
begin
if opendialog1.Execute then
begin
AssignFile(t1, opendialog1.FileName);
Reset(t1);
while not eof(t1) do
begin
Readln(t1, s);
if LeftBStr(s,5) = ´00001´ then
label1.Caption := s
end;
end;
end;
end.
Desta maneira não deveria dar certo?
Obrigado pela atenção.
Se não estiver implementada então está funcionando corretamente: como está retorna uma string vazia e o caption do label nunca vai receber o valor da string s.[/quote:b7b95ae351]
o código completo é este:
implementation
{$R *.dfm}
function LeftBStr(line: AnsiString; number: Integer): AnsiString;
begin
end;
procedure TForm1.Button1Click(Sender: TObject);
var
t1: TextFile;
s: string;
begin
if opendialog1.Execute then
begin
AssignFile(t1, opendialog1.FileName);
Reset(t1);
while not eof(t1) do
begin
Readln(t1, s);
if LeftBStr(s,5) = ´00001´ then
label1.Caption := s
end;
end;
end;
end.
Desta maneira não deveria dar certo?
Obrigado pela atenção.
[quote:b7b95ae351=´jorgeolimpia´]tenho a seguinte função do Delphi:
LeftBStr(texto: AnsiString; numero: Integer): AnsiString;
begin
end;
[...]Se tento usar a seguinte instrução:
if LeftBStr(s, 5) = ´00001´ then
label1.caption := s
não é mostrado nada no label.
Sua função LeftBStr não está implementada ou você omitiu a implementação quando postou aqui?Se não estiver implementada então está funcionando corretamente: como está retorna uma string vazia e o caption do label nunca vai receber o valor da string s.[/quote:b7b95ae351]
GOSTEI 0
Gandalf.nho
17/12/2004
Sua função não está implementada (não há nada dentro do bloco Begin.. end), então não há como retornar algo.
GOSTEI 0
Massuda
17/12/2004
o código completo é este:
implementation
{$R *.dfm}
function LeftBStr(line: AnsiString; number: Integer): AnsiString;
begin
end;
procedure TForm1.Button1Click(Sender: TObject);
// resto da unit omitidaA função LeftBStr está definida na unit StrUtils, você não precisa declarar uma função LeftBStr na sua unit. Mude seu código para:
implementation
{$R *.dfm}
uses
StrUtils;
procedure TForm1.Button1Click(Sender: TObject);
// resto da unit omitidaGOSTEI 0
Massuda
17/12/2004
A função LeftBStr está definida na unit StrUtils, você não precisa declarar uma função LeftBStr na sua unit.
Mais um detalhe... meu comentário vale apenas se você estiver usando Delphi 7 ou mais recente. Se estiver usando Delphi 6 ou mais antigo, implemente a função LeftBStr assim:function LeftBStr(line: AnsiString; number: Integer): AnsiString; begin Result := Copy(line, 1, number); end;
GOSTEI 0
Jorgeolimpia
17/12/2004
Caro Massuda,
realmente a sua dica está certa.
Eu não sabia que não era necessário criar a função, já que ela existe dentro do Delphi.
Agradeço muito a sua ajuda.
Abraços...
realmente a sua dica está certa.
Eu não sabia que não era necessário criar a função, já que ela existe dentro do Delphi.
Agradeço muito a sua ajuda.
Abraços...
GOSTEI 0