Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi undefinierter bezeichner (https://www.delphipraxis.net/69931-undefinierter-bezeichner.html)

sancho1980 22. Mai 2006 14:40


undefinierter bezeichner
 
hallo
ich glaub ich seh grad den wald vor lauter bäumen nicht:
habe mir eine unit geschrieben die sieht folgendermaßen aus:

Delphi-Quellcode:
unit Utils;


interface

uses
  Types;

implementation

function Tokenize(const S: WideString; const C: WideChar): TWideStringDynArray;
var
  SLen, SIdx, NTok, TokStart, TokLen: Integer;
begin
  if S <> '' then
  begin
    SLen := Length(S);
    SetLength(Result, SLen);
    TokStart := 0;
    NTok := 0;
    TokLen := 0;
    for SIdx := 1 to SLen do
    begin
      if S[SIdx] <> C then
      begin
        if TokStart = 0 then
          TokStart := SIdx;
        Inc(TokLen);
      end;
      if ((SIdx = SLen) or (S[SIdx] = C)) and (TokStart > 0) then
      begin
        Inc(NTok);
        Result[NTok-1] := Copy(S, TokStart, TokLen);
        TokStart := 0;
        TokLen := 0;
      end;
    end;
    SetLength(Result, NTok);
  end else
    SetLength(Result, 0);
end;

end.
Dann hab ich die meinem Projekt hinzugefügt, denn ich will sie ja verwenden *g
So, und dann hab ich in der entsprechenden Unit, wo ich Tokenize verwenden will Datei->Unit verwenden->Utils gemacht
So und wenn ich jetz Tokenize(s, '.') aufrufe bekomm ich immer: Undefinierter Bezeichner: 'Tokenize'

steh grad auf'm schlauch ich hoffe ihr könnt mir helfen

danke,

martin

Luckie 22. Mai 2006 14:41

Re: undefinierter bezeichner
 
Du musst den Funktionskopf noch im interface Abschnitt bekannt machen, sprich eintragen.

sancho1980 22. Mai 2006 14:47

Re: undefinierter bezeichner
 
hmmm...ich mach sowas sehr selten per hand, aber das hier kompiliert irgendwie nicht; da bekomm ich:

Deklaration erwartet, aber 'USES' gefunden:

Delphi-Quellcode:
unit Utils;


interface

function Tokenize(const S: WideString; const C: WideChar): TWideStringDynArray;

uses
  Types;

implementation

function Tokenize(const S: WideString; const C: WideChar): TWideStringDynArray;
var
  SLen, SIdx, NTok, TokStart, TokLen: Integer;
begin
  if S <> '' then
  begin
    SLen := Length(S);
    SetLength(Result, SLen);
    TokStart := 0;
    NTok := 0;
    TokLen := 0;
    for SIdx := 1 to SLen do
    begin
      if S[SIdx] <> C then
      begin
        if TokStart = 0 then
          TokStart := SIdx;
        Inc(TokLen);
      end;
      if ((SIdx = SLen) or (S[SIdx] = C)) and (TokStart > 0) then
      begin
        Inc(NTok);
        Result[NTok-1] := Copy(S, TokStart, TokLen);
        TokStart := 0;
        TokLen := 0;
      end;
    end;
    SetLength(Result, NTok);
  end else
    SetLength(Result, 0);
end;

end.

Luckie 22. Mai 2006 14:48

Re: undefinierter bezeichner
 
Hinter dem uses-Abschnitt muss das stehen.

jakobwenzel 22. Mai 2006 14:49

Re: undefinierter bezeichner
 
du musst zuerst das Uses reinschreiben, und dann den Funktionskopf:

Delphi-Quellcode:
unit Utils;


interface

uses
  Types;

function Tokenize(const S: WideString; const C: WideChar): TWideStringDynArray;

implementation
...

sancho1980 22. Mai 2006 14:52

Re: undefinierter bezeichner
 
ahh, danke :-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:06 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz