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? |
Re: SaveToFile [TStringgrid] ohne Tsavedialog
ja sry wenn ich mich falsch ausgedrückt habe.
*missverständnis |
Re: SaveToFile [TStringgrid] ohne Tsavedialog
ohh .. aso ... dann sollte sowas passen
Delphi-Quellcode:
du kannst natürlich auch die beiden Variabeln weglassen und die Cells direkt in MoveFile eingeben ... ich find's so nur anschaulicher.
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; 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() |
Re: SaveToFile [TStringgrid] ohne Tsavedialog
Zitat:
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; |
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:
marabu
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; |
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 |
Re: SaveToFile [TStringgrid] ohne Tsavedialog
:gruebel:
Ich hatte doch auch alles gepostet? (bis auf die Copy&Paste-Lösung) ExtractFilePath(), ExtractFileName(), MoveFile() // MoveFile = RenameFile |
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 |
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. |
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