Registriert seit: 16. Nov 2005
51 Beiträge
Delphi 2005 Personal
|
Re: Programm störung
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
|