Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi IF ..... AND -> Wie schließen? (https://www.delphipraxis.net/16152-if-wie-schliessen.html)

TheMiller 11. Feb 2004 15:04


IF ..... AND -> Wie schließen?
 
Hi, ich bräuchte mal wieder eure HILFE...

ich habe folgenden Code:
Delphi-Quellcode:
If Label1.Caption:='xxxxxxx' AND
If Fileexists('C:\xxxxxxx') THEN begin

    with AbCabExtractor1 do begin
      FileName := ExtractFilePath(paramstr(0))+'xxx.cab';
      BaseDirectory := 'c:\xxx';
      try
        ExtractFiles('xxxxx');
        Progressbar1.StepIt;
        finally
        end;

    with AbUnzipper1 do begin
      FileName := 'c:\xxxxxxx';
      BaseDirectory := ABCabExtractor1.BaseDirectory;
      ABUnzipper1.Password:='xx';
      ExtractFiles( 'xxxx' );
      Progressbar1.StepIt;
      end;
      RenameFile('C:\xxxx','C:\xxxx.xxx');
      Progressbar1.StepIt;
      ShellExecute(0, nil, PChar('c:\xxxx.xxx'), nil, nil, sw_Show);
      Progressbar1.StepIt;
      Progressbar1.Visible:=False;
      ABUnzipper1.CloseArchive;
      DeleteFile('xxxxxxxxx');
      end;
      end

ELSE begin

    with AbCabExtractor1 do begin
      FileName := ExtractFilePath(paramstr(0))+'xxx';
      BaseDirectory := 'xxxx';
      try
        ExtractFiles('xxxxx');
        Progressbar1.StepIt;
        finally
        end;
        end;

    with AbUnzipper1 do begin
      FileName := 'c:\xxxxxx';
      BaseDirectory := ABCabExtractor1.BaseDirectory;
      ABUnzipper1.Password:='xx';
      ExtractFiles( 'xxxx' );
      Progressbar1.StepIt;
      end;
      RenameFile('C:\xxx','C:\xxxxx.xxx');
      Progressbar1.StepIt;
      ShellExecute(0, nil, PChar('c:\xxxx), nil, nil, sw_Show);
      Progressbar1.StepIt;
      Progressbar1.Visible:=False;
      ABUnzipper1.CloseArchive;
      DeleteFile('xxxxx');
end;
end;
Nur ich habe Probleme mit den abschließenden "end;'s" Wer könnte mir da helfen?

Synonym 11. Feb 2004 15:06

Re: IF ..... AND -> Wie schließen?
 
Du hast hier nen Fehler drin

Delphi-Quellcode:
ShellExecute(0, nil, PChar('c:\xxxx), nil, nil, sw_Show);
sollte so aussehen:

Delphi-Quellcode:
ShellExecute(0, nil, PChar('c:\xxxx'), nil, nil, sw_Show);
gruß

synonym

Sharky 11. Feb 2004 15:21

Re: IF ..... AND -> Wie schließen?
 
Hai DJ-SPM,

a) Ist das keine gültige Abfrage:

Delphi-Quellcode:
If Label1.Caption:='xxxxxxx' AND
If Fileexists('C:\xxxxxxx') THEN begin
b) Die Probleme mit dem Begin-End kannst Du umgehen indem Du deinen Sourcecode "besser" formatierst:

Delphi-Quellcode:
begin
  if (Label1.Caption = 'xxxxxx') and (FileExists ('c:\xxxxx')) then
    begin
    end
  else
    begin
      if (was_weis_ich) then
        begin
        end
      else
        begin
        end;
    end;
end;

Spezi1980 11. Feb 2004 15:21

Re: IF ..... AND -> Wie schließen?
 
sollte es so aussehen?

Delphi-Quellcode:
If Label1.Caption='xxxxxxx' AND Fileexists('C:\xxxxxxx') THEN
begin
    with AbCabExtractor1 do
    begin
      FileName := ExtractFilePath(paramstr(0))+'xxx.cab';
      BaseDirectory := 'c:\xxx';
      try
        ExtractFiles('xxxxx');
        Progressbar1.StepIt;
      finally
      end;
    end;

    with AbUnzipper1 do
    begin
      FileName := 'c:\xxxxxxx';
      BaseDirectory := ABCabExtractor1.BaseDirectory;
      ABUnzipper1.Password:='xx';
      ExtractFiles( 'xxxx' );
      Progressbar1.StepIt;
    end;
    RenameFile('C:\xxxx','C:\xxxx.xxx');
    Progressbar1.StepIt;
    ShellExecute(0, nil, PChar('c:\xxxx.xxx'), nil, nil, sw_Show);
    Progressbar1.StepIt;
    Progressbar1.Visible:=False;
    ABUnzipper1.CloseArchive;
    DeleteFile('xxxxxxxxx');

end ELSE begin
    with AbCabExtractor1 do
    begin
      FileName := ExtractFilePath(paramstr(0))+'xxx';
      BaseDirectory := 'xxxx';
      try
        ExtractFiles('xxxxx');
        Progressbar1.StepIt;
      finally
      end;
    end;

    with AbUnzipper1 do
    begin
      FileName := 'c:\xxxxxx';
      BaseDirectory := ABCabExtractor1.BaseDirectory;
      ABUnzipper1.Password:='xx';
      ExtractFiles( 'xxxx' );
      Progressbar1.StepIt;
    end;
   
    RenameFile('C:\xxx','C:\xxxxx.xxx');
    Progressbar1.StepIt;
    ShellExecute(0, nil, PChar('c:\xxxx'), nil, nil, sw_Show);
    Progressbar1.StepIt;
    Progressbar1.Visible:=False;
    ABUnzipper1.CloseArchive;
    DeleteFile('xxxxx');
end;
ordne die den code so ann, dass du auf einen Blick siehst, welches Begin zu welchem end gehört.

Gruß Robert

[Edit]da war wohl jemand schneller... [/Edit]

Bobator 11. Feb 2004 15:43

Re: IF ..... AND -> Wie schließen?
 
Delphi-Quellcode:
If (Label1.Caption='xxxxxxx') AND Fileexists('C:\xxxxxxx') THEN
begin
    with AbCabExtractor1 do
    begin
      FileName := ExtractFilePath(paramstr(0))+'xxx.cab';
      BaseDirectory := 'c:\xxx';
      //So dürfte die Ausgabe mit Abbrevia-Komponenten funktionieren
      ArchiveProgressMeter:=AbVCLMeterLink1;
      AbVCLMeterLink1.Meter:=AbMeter1;
      try
        ExtractFiles('xxxxx');
      //  Progressbar1.StepIt; mhh... soweit ich weiss funzt das net mit Abbrevia. Besser siehe oben
      except
        Showmessage('Fehler.');
      end;
    end;

    with AbUnzipper1 do
    begin
      FileName := 'c:\xxxxxxx';
      BaseDirectory := ABCabExtractor1.BaseDirectory;
      ABUnzipper1.Password:='xx';
      ExtractFiles( 'xxxx' );
      //Progressbar1.StepIt; siehe oben
      ArchiveProgressMeter:=AbVCLMeterLink2;
      AbVCLMeterLink2.Meter:=AbMeter2;
    end;
    RenameFile('C:\xxxx','C:\xxxx.xxx');
    Progressbar1.StepIt;
    ShellExecute(0, nil, PChar('c:\xxxx.xxx'), nil, nil, sw_Show);
    Progressbar1.StepIt;
    Progressbar1.Visible:=False;
    ABUnzipper1.CloseArchive;
    DeleteFile('xxxxxxxxx');
end
ELSE
begin
    with AbCabExtractor1 do
    begin
      FileName := ExtractFilePath(paramstr(0))+'xxx';
      BaseDirectory := 'xxxx';
      try
        ExtractFiles('xxxxx');
      //  Progressbar1.StepIt;
      finally
      end;
    end;

    with AbUnzipper1 do
    begin
      FileName := 'c:\xxxxxx';
      BaseDirectory := ABCabExtractor1.BaseDirectory;
      ABUnzipper1.Password:='xx';
      ExtractFiles( 'xxxx' );
      Progressbar1.StepIt;
    end;
   
    RenameFile('C:\xxx','C:\xxxxx.xxx');
    Progressbar1.StepIt;
    ShellExecute(0, nil, PChar('c:\xxxx'), nil, nil, sw_Show);
    Progressbar1.StepIt;
    Progressbar1.Visible:=False;
    ABUnzipper1.CloseArchive;
    DeleteFile('xxxxx');
end;

TheMiller 11. Feb 2004 15:43

Re: IF ..... AND -> Wie schließen?
 
@Robert: Ich habe jetzt die Zeile
Delphi-Quellcode:
If Label1.Caption:='2004211' AND Fileexists('C:\xxx\xxx.xxx') THEN
eingetragen und er sagt mir
Delphi-Quellcode:
Inkompatible Typen: String und Boolean
Die Überprüfung soll so aussehen, dass beide Teile (Label1.Caption und Fileexists) geprüft werden und wenn beides korrekt ist geht es mit xx weiter, wenn eins oder beides nicht stimmt, dann mit yy...

Trotzdem erstmal danke für die antworten

MikeS 11. Feb 2004 15:45

Re: IF ..... AND -> Wie schließen?
 
Zitat:

Source:
If Label1.Caption:='2004211' AND Fileexists('C:\Programme\BVEH\bveh.exd') THEN
probiere es mal so

Delphi-Quellcode:
Source:
If (Label1.Caption ='2004211') AND Fileexists('C:\Programme\BVEH\bveh.exd') THEN

Christian Seehase 11. Feb 2004 15:51

Re: IF ..... AND -> Wie schließen?
 
Moin DJ-SPM,

oder um's deutlicher zu machen:

Bei Vergleichen auf Gleichheit, z.B. bei if/then, ein = verwenden.
Der Operator := dient nur der Zuweisung von Werten.

TheMiller 11. Feb 2004 15:54

Re: IF ..... AND -> Wie schließen?
 
yup, das funzt jetzt alles.... danke!!!!

Spezi1980 11. Feb 2004 20:11

Re: IF ..... AND -> Wie schließen?
 
ups, natürlich := ist eine Zuweisung und = ein Vergleich. Tschuldigung hatte ich übersehen.

Gruß


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:23 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