Thema: Delphi Programm störung

Einzelnen Beitrag anzeigen

milanlu

Registriert seit: 16. Nov 2005
51 Beiträge
 
Delphi 2005 Personal
 
#5

Re: Programm störung

  Alt 30. Dez 2005, 21:36
hallo, es funktioniert wider gur wenn die funktion fertig ist.
Delphi-Quellcode:
var
  frmverschieben: Tfrmverschieben;
  lista: TListBox;
  eingabe, ausgabe: String;

implementation

uses Unit1, Unit2;


{$R *.dfm}
function proveri_pesmu(pesma: String): Boolean;
var
achars: set of char;
i, s, k, k1, anzahl: Integer;
begin
  achars := ['1','2','3','4','5','6','7','8','9','0','+','"','*','&','/','(',')','=','?','[',']','!','<','>','\','_'];
  anzahl := 0;
  Result := True;
  k := Length(pesma);
  k1 := k - 3;
  for s := 1 to k1 do
  begin
    if pesma[s] = '-then
    begin
      anzahl := anzahl + 1;
    end;
  end;
  if anzahl <> 1 then
  begin
      Result := False;
      exit;
  end;
  for i := 1 to k1 do
  begin
    if ((pesma[i] in achars) or (pesma[1] = ' ')) then
    begin
      Result := False;
      exit;
    end
    else if ((pesma[i] = '-') and ((pesma[i-1] <> ' ') or (pesma[i+1] <> ' '))) then
    begin
      Result := False;
      exit;
    end;
end;
end;

procedure Tfrmverschieben.Button1Click(Sender: TObject);
var
pesma, pesma1, pesma2, pesma3, s, ordners, s1, fehler: String;
i, k: Integer;
begin
if frmverschieben.Showing then
begin
  if ((eingabe <> '') and (lista.Items.Count > 0) and (ausgabe <> '')) then
  begin
    prozess.Max := lista.items.Count;
    for i := 0 to lista.Items.Count-1 do
    begin
      pesma := lista.Items[i];
      ordners := ExtractFileDir(pesma);
      pesma1 := ExtractFileName(pesma);
      pesma3 := pesma1;
      if (proveri_pesmu(pesma1) = true) then
      begin
        pesma2 := LowerCase(pesma1);

        for k := 0 to Length(pesma2) do
        begin
            If ((k = 1) or (pesma2[k-1] = ' ')) then
            begin
              pesma2[k] := UpCase(pesma2[k]);
            end
            else
            begin
              pesma2[k] := pesma2[k];
            end;
        end;
        if (ordners[Length(ordners)] = '\') then
        begin
          s := '';
        end
        else
        begin
          s := '\';
        end;
        if (ausgabe[Length(ausgabe)] = '\') then
        begin
          s1 := '';
        end
        else
        begin
          s1 := '\';
        end;
        RenameFile(ordners + s + pesma3, ausgabe + s1 + pesma2);
      end
      else
      begin

        if (ordners[Length(ordners)] = '\') then
          begin
            s := '';
          end
        else
          begin
          s := '\';
          end;
        if (ausgabe[Length(ausgabe)] = '\') then
        begin
          s1 := '';
        end
        else
        begin
          s1 := '\';
        end;
        fehler := ausgabe + s1 + 'FEHLER\';
        ForceDirectories(fehler);
        RenameFile(ordners + s + pesma3, fehler + pesma3);
      end;
      pesma := '';
      pesma1 := '';
      pesma2 := '';
      prozess.Position := i;
      if i = lista.Items.Count-1 then
      begin
        Timer1.Destroy;
        frmverschieben.Close;
        if (MessageDlg('Alle Dateien sind kopiert!', mtInformation, [mbOK], 0) = mrOK) then
        begin
          prozess.Position := prozess.Min;
        end;
      end;
    end;

  end
else
  begin
    MessageDlg('Es sind keine Dateien zum Verschieben Vorhanden!', mtInformation, [mbOk], 0);
  end;
end;
end;
Milan
  Mit Zitat antworten Zitat