Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi SaveToFile [TStringgrid] ohne Tsavedialog (https://www.delphipraxis.net/69126-savetofile-%5Btstringgrid%5D-ohne-tsavedialog.html)

TeronG 11. Mai 2006 13:43

Re: SaveToFile [TStringgrid] ohne Tsavedialog
 
:gruebel:
Ich dachte, du möchtest den inhalt des Grid's speichern.
Aber du willst nur die "alte Datei" unter neuem/korigiertem namen speichern oder wie?

danku 11. Mai 2006 13:52

Re: SaveToFile [TStringgrid] ohne Tsavedialog
 
ja sry wenn ich mich falsch ausgedrückt habe.
*missverständnis

TeronG 11. Mai 2006 16:06

Re: SaveToFile [TStringgrid] ohne Tsavedialog
 
ohh .. aso ... dann sollte sowas passen

Delphi-Quellcode:
var
  AlteDatei, NeueDatei : String;

...
...

  for i := 0 to StringGrid1.RowCount-1 do
  begin
    AlteDatei := StringGrid1.Cells[0,i]; //die spalte mit dem alten namen des Opendialogs eintragen
    NeueDatei := StringGrid1.Cells[1,i]; //Die Spalte mit dem neuen bereinigten Namen eigragen
    MoveFile(AlteDatei,NeueDatei); // falls die alte Datei bleiben soll dann CopyFile();

    //MoveFile(StringGrid1.Cells[0,i],StringGrid1.Cells[1,i]); //ohne die var's ^^
  end;
du kannst natürlich auch die beiden Variabeln weglassen und die Cells direkt in MoveFile eingeben ... ich find's so nur anschaulicher.
Ist quasi wie dein eigentlicher code nur, daß du MoveFile benutzen musst ..

Hoffe ich habs nun richtig verstanden ^^

PS: Zum zerlegen der Pfadangaben (falls nötig): ExtractFilePath(), ExtractFileName()

danku 11. Mai 2006 16:34

Re: SaveToFile [TStringgrid] ohne Tsavedialog
 
Zitat:

Zitat von TeronG
:gruebel:
Ich dachte, du möchtest den inhalt des Grid's speichern.
Aber du willst nur die "alte Datei" unter neuem/korigiertem namen speichern oder wie?

irgendwie reden wir aneinander vorbei.
deine 2thesen habe ich bereits schon erledigt.

wenn ich mp3s per topendialog1 ins sgfiles.cells[0,i] lade,
ist es doch logisch die datei wieder zu speichern, die eben in der spalte 1 vorliegen.

ES GEHT MIR DARUM, DAS DIE DATEIEN DIE PER OPENDIALOG IN DIE SPALTE 1 GELADEN WERDEN - DURCH DIE FILTER FORMATIERT WERDEN (NEUE NAMEN VERGEBEN) - UND ZURÜCKGESCHRIEBEN WERDEN. (ALSO UMBENNEN +SPEICHERN)

my try:

Delphi-Quellcode:
procedure Tfmformat.sbsaveClick(Sender: TObject);
var i,sum:integer;

  procedure SaveGrid(grid: TStringGrid; fileName: string);
  var iRow: integer;
  sl: TStringList;
   begin
   sl := TStringList.Create;
   .. ?
     sl.SaveToFile(fileName);
     sl.Free;
      end;

begin

if change= true
  then begin
    Statusbar1.Panels[1].text:='Saved';
    Savedialog1.InitialDir:=GetCurrentDir;

    for i:=0 to Opendialog1.files.count -1 do
    begin
    SaveGrid(sgfiles,opendialog1.Files.Strings[i]);
    end;
end;

marabu 11. Mai 2006 19:25

Re: SaveToFile [TStringgrid] ohne Tsavedialog
 
Mein letzter Versuch: Wenn deine Original-Dateinamen mit Pfad in Cols[1] stehen und die durch dein Programm korrigierten Namen ohne Pfad in Cols[0], dann sollte das hier funktionieren:

Delphi-Quellcode:
procedure RenameFiles(oldNames, newNames: TStrings; skip: Cardinal = 0);
var
  i: Integer;
  fp, fn: TFileName;
begin
  for i := skip to Pred(oldNames.Count) do
  begin
    fp := ExtracFilePath(oldNames[i]);
    fn := ExtractFileName(oldNames[i]);
    if (i < newNames.Count) and not SameText(fn, newNames[i]) then
    try
      RenameFile(oldNames[i], fp + newNames[i]);
      // positive Rückmeldung
    except
      // negative Rückmeldung
    end;
  end;
end;

procedure TDemoForm.RenameButtonClick(Sender: TObject);
begin
  with StringGrid do
    RenameFiles(Cols[1], Cols[0], FixedRows);
end;
marabu

danku 12. Mai 2006 13:52

Re: SaveToFile [TStringgrid] ohne Tsavedialog
 
:thumb: jo
lass dich drücken. danke für deine ausdauer :cheers:
du bist der erste der mein fertiges programm erhält

TeronG 15. Mai 2006 15:33

Re: SaveToFile [TStringgrid] ohne Tsavedialog
 
:gruebel:
Ich hatte doch auch alles gepostet? (bis auf die Copy&Paste-Lösung)
ExtractFilePath(), ExtractFileName(), MoveFile() // MoveFile = RenameFile

danku 15. Mai 2006 15:36

Re: SaveToFile [TStringgrid] ohne Tsavedialog
 
mag sein. sry wenn ich es übersehn habe.
die move methode ware aufjedenfall nix.
beschäftige mich im moment mit tstringlists

TeronG 15. Mai 2006 15:52

Re: SaveToFile [TStringgrid] ohne Tsavedialog
 
Egal .. hauptsache das Problem wurde trotz der Missverständnisse doch noch gelöst :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:51 Uhr.
Seite 2 von 2     12   

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