AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Duplicate internal name

Ein Thema von gelberkaktus · begonnen am 5. Mai 2012 · letzter Beitrag vom 7. Mai 2012
 
gelberkaktus

Registriert seit: 18. Mär 2012
Ort: Kölleda/Thüringen
16 Beiträge
 
Delphi 7 Personal
 
#7

AW: Duplicate internal name

  Alt 6. Mai 2012, 15:19
der code

zum zippen
Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
var
//integers
i:integer;
//eingelesene variabeln
mcjar, modzip, neunameojar, ordner: string;
//konvertierte variabeln
mczip:string;
//entzippte variablen
mcdic:string;
//umbenannte variabeln
neumczip, neumczip2:string;
//gezippte variablen
neuzip :string;
//rekonvertierte variabeln
neujar:string;
begin
//alle variabeln einlesen
mcjar:= Edit1.Text;
modzip:= Edit2.Text;
neunameojar:= Edit3.Text;
ordner:=ExtractFileDir(mcjar)+'\temp\';
//löscht endung von mc.jar in var
mczip:= Copy(mcjar, 1, Length(mcjar) - 4);
//fügt neue endung hinzu in var
mczip:= mczip +'.zip';
//kopiert mc.jar zu mc.zip nun in fest
if CopyFile(PChar(mcjar), PChar(mczip), False) then
  ShowMessage('schritt1 komplett');
  Progressbar1.Position:= 10;
//entpackt mcjar
mcdic:= Form1.unzip(mczip);
Showmessage('Schritt 2 fertig');
Progressbar1.Position:= 20;
//löscht meta-inf
deldir(mcdic + 'META-INF\');
ShowMessage('Schritt 3 fertig');
Progressbar1.Position:= 30;
//kopiert mod in mc-datei
  with Zipmaster1 do
    begin
      ZipFilename:=modzip;
      ExtrBaseDir:=mcdic;
      Extract;
    end;
ShowMessage('Schritt 4 fertig');
Progressbar1.Position:= 50;
//mc.zip löschen
DeleteFile(mczip);
    //neuenordner finden (extractfiledir findet den übergeordenten ordener heraus)
    //ordner umbenennen
Zipmaster1.Clear;
//daten listen
ListFileDir(mcdic+'\', ListBox1.Items);
Progressbar1.Position:= 60;
//neue zip
  neuzip:= neunameojar + '.zip';
  //neuzip:= ExtractFileDir(mcjar) + '\' + neunameojar + '.zip';
ShowMessage('Schritt 5 fertig');
Progressbar1.Position:= 70;
//wieder zippen
//neuzip:= Form1.zip(neuname, neuzipn);
  with Zipmaster1 do
  begin
    ZipFilename:= '';
    FSpecArgs.Clear;
    ZipFilename:=(neuzip);
    try
    for i:= 0 to (ListBox1.Items.Count -1) do
      FSpecArgs.Add(ListBox1.Items[i]);
    finally
    Add;
    end; //fehler immernoch
  end;
Showmessage('schritt 6 fertig');
Progressbar1.Position:= 100;
end;

//entpacken
function TForm1.unzip(ziparchiv:string):string;
var
ausgabe:string;
begin
  ausgabe:=ziparchiv;
  ausgabe:= Copy(ausgabe, 1, Length(ausgabe) - 4);
  ausgabe:= ausgabe +'\';
  mkdir(ausgabe);
  with Zipmaster1 do
  begin
    ZipFilename:=ziparchiv;
    ExtrBaseDir:=ausgabe;
    Extract;
  end;
  ShowMessage('FERTIG');
  Result:= ausgabe;
end;

//zippen
function TForm1.zip(ordner:string; ausgabe:string):string;
begin
  ordner:= ordner + '\';
  ShowMessage(ordner);
  with Zipmaster1 do
  begin
    ZipFilename:=ausgabe;
    FSpecArgs.Add(ordner);
    Add;
  end;
  ShowMessage('FERTIG');
  Result:= ausgabe;
end;

//verzeichnis löschen
function deldir(dir: string): Boolean;
var
  fos: TSHFileOpStruct;
begin
  ZeroMemory(@fos, SizeOf(fos));
  with fos do
  begin
    wFunc := FO_DELETE;
    fFlags := FOF_SILENT or FOF_NOCONFIRMATION;
    pFrom := PChar(dir + #0);
  end;
  Result := (0 = ShFileOperation(fos));
end;

procedure TForm1.Button1Click(Sender: TObject);
var
   modzip, ausgabe: string;
begin

modzip:= Edit2.Text;

ausgabe := Form1.unzip(modzip);

end;

procedure TForm1.Button2Click(Sender: TObject);
var ordner, nix:string;
begin
SelectDirectory('Speicherordner wählen', '', ordner);
ShowMessage(ordner);
nix:= Form1.zip(ordner, (ExtractFilePath(ParamStr(0))+'test.zip'));
end;

procedure ListFileDir(Path: string; FileList: TStrings);
var
  SR: TSearchRec;
begin
    if FindFirst(Path + '*.*', faAnyFile, SR) = 0 then
  begin
    repeat
      if ((SR.Attr and faDirectory) = faDirectory) then
      begin
        FileList.Add(SR.Name);
      end;
    until FindNext(SR) <> 0;
    FindClose(SR);
  end;
  if FindFirst(Path + '*.*', faAnyFile, SR) = 0 then
  begin
    repeat
      if (SR.Attr <> faDirectory) then
      begin
        FileList.Add(SR.Name);
      end;
    until FindNext(SR) <> 0;
    FindClose(SR);
  end;
  FileList.Delete(0);
  FileList.Delete(0);
end;
Hier das ganze noch als Download mit den Testdateien, wessen Pfadim Programm angepasst werden muss.
"Ohne konkrete Symbole ist der Computer bloß ein Haufen Schrott."
Neil Postman

Geändert von gelberkaktus ( 6. Mai 2012 um 15:26 Uhr) Grund: Download hinzugefügt
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:37 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