Avatar billede wollabella Nybegynder
21. februar 2002 - 21:30 Der er 9 kommentarer

tjeck om String er af Tal?

hej hvad er der galt her??
jeg vil have den skal tjecke hver linie om linien er af TAL

procedure TForm1.Button1Click(Sender: TObject);
var
sl: TStringlist;
  i,n,error: integer;
  tmp:String;
begin
sl := TStringlist.Create;
sl.LoadFromFile('c:\mads.txt');
  for i:= sl.Count-1 downto 0 do
  if val(sl[i],n,error) = 0 then
  begin
  listbox1.Items.Add(sl[i]);
  end;
  end;
end.


fejlen er

[Error] Unit1.pas(36): Incompatible types
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
Avatar billede cms Nybegynder
21. februar 2002 - 21:32 #1
sl := TStringlist.Create;
sl.LoadFromFile('c:\mads.txt');
for i:= sl.Count-1 downto 0 do
begin
  val(sl[i],n,error);
  if error = 0 then
    listbox1.Items.Add(sl[i]);
end;
Avatar billede wollabella Nybegynder
21. februar 2002 - 21:35 #2
er det entligt ikke nogen andre måder at tjecke... som REGEX?
Avatar billede wollabella Nybegynder
21. februar 2002 - 21:37 #3
og den virker ikke ordenligt... den tager kun den første linie...
Avatar billede stoney Nybegynder
21. februar 2002 - 21:59 #4
Skal den overføre til listboxen hvis det er tal eller text

Stoney
Avatar billede dkn Nybegynder
21. februar 2002 - 22:00 #5
det her skulle kunne gøre det:

function TForm1.KunTal(Input: string): boolean;
begin
Try strtoint(input);
result := true;
except
result := false;
end;
end;

bare husk at delphis debugger ikke kan lide det, men det virker :)
Avatar billede dkn Nybegynder
21. februar 2002 - 22:02 #6
sl := TStringlist.Create;
sl.LoadFromFile('c:\mads.txt');
for i := 0 to  sl.Count-1 do
begin
  if kuntal(sl.strings[I]) then
    listbox1.Items.Add(sl.strings[I]);
end
Avatar billede wollabella Nybegynder
21. februar 2002 - 22:28 #7
Stoney... kun hvis det er Tal der er i
Avatar billede stoney Nybegynder
21. februar 2002 - 23:12 #8
function IsStrANumber(const S: String): Boolean;
var
  P:PChar;
begin
  P:=PChar(S);
  result:=False;
  while P^ <> #0 do
  begin
    if not (P^ in ['0'..'9']) then exit;
    inc(P);
  end;
  result:=True;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
sl : TStringlist;
  i: integer;
begin
sl := TStringlist.Create;
sl.LoadFromFile('C:\mads.txt');
  for i:= sl.Count-1 downto 0 do

  if IsStrANumber(sl[i])= true then

  listbox1.Items.Add(sl[i]);


end;

Stoney
Avatar billede wollabella Nybegynder
22. februar 2002 - 08:11 #9
hey stoney fedt script.. takker.. det ville være kanont hvis du gad give en lille tekst om hvad

functionen gør

altså f.eks

hvad while P^ <> #0

det betyder og er det en

REGEX du laver ['0'..'9']
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester