![]() |
SaveToFile [TStringgrid] ohne Tsavedialog
Ich möchte nur die 1.Spalte einer TStringGrid speichern. Es soll kein Tsavedialog geoeffnet werden.
ich arbeite ohne Tstrings! ausgelesen mit:
Delphi-Quellcode:
Versuch des Speicherns:
sgfiles.RowCount := OpenDialog1.Files.Count + 1;
for i:=0 to Opendialog1.files.count -1 do begin sgfiles.cells[0,1 + i]:= (OpenDialog1.Files[i]); Savedialog1.InitialDir:=GetCurrentDir;
Delphi-Quellcode:
// klassentyp oder recordtyp wird erfordet. ich weiß. for i := 0 to sl.Count - 1 do aber kann ich das auch ohne eine Tstringlist realisieren? wenn ja wie?
Savedialog1.InitialDir:=GetCurrentDir;
for i:= 0 to sgfiles.rowcount-1 do sgfiles.rows.SaveToFile('GetCurrentDir' + sgfiles.Cells[0,i].AsString); |
Re: SaveToFile [TStringgrid] ohne Tsavedialog
Probiere es so:
Delphi-Quellcode:
Grüße vom marabu
var
fn: TFileName; begin fn := IncludeTrailingPathDelimiter(GetCurrentDir) + 'demo.txt'; with sgFiles do Cols[FixedCols].SaveToFile(fn); end; |
Re: SaveToFile [TStringgrid] ohne Tsavedialog
Zitat:
Wenn du dich dazu überwinden könntest eine TStringList zu nehmen könntest du mit .SaveToFile() arbeiten. EDIT: :oops: ach ja .. und wenn nicht dann hilft evtl. ![]() EDIT2: :shock: ach man kann sogar
Delphi-Quellcode:
machen?? cool :mrgreen:
Cols[FixedCols].SaveToFile(fn);
|
Re: SaveToFile [TStringgrid] ohne Tsavedialog
Zitat:
wofür steht die demo.txt? außerdem funzt deine methode nicht :gruebel: |
Re: SaveToFile [TStringgrid] ohne Tsavedialog
Hallo Daniel,
Zitat:
Zitat:
Delphi-Quellcode:
Freundliche Grüße vom marabu
uses
StrUtils; function SaveColumn(sg: TStringGrid; index: Integer; keepHeader: Boolean = false): Boolean; var fn: TFileName; begin Result := false; if sg.RowCount = 0 then Exit; with TStringList.Create do try Assign(sg.Cols[index]); fn := IncludeTrailingPathDelimiter(GetCurrentDir) + Strings[0]; if not keepHeader then Delete(index); SaveToFile(fn); Result := true; finally Free; end; end; procedure TDemoForm.ButtonClick(Sender: TObject); begin ShowMessage(IfThen(SaveColumn(StringGrid, 0), 'holiday', 'kill the cat')); end; |
Re: SaveToFile [TStringgrid] ohne Tsavedialog
klar das mit dem platzhalter ist mir schon klar aber für mich sieht der überlüssig aus. d.h. der ist gar nicht notwendig.
zum code: ich meine theoretisch müsste der ja speichern aber praktisch sieht das ganz anders aus. inhalt von cells[0,1]:='D:\+MUSIK\ashanti_-_cant_stop.mp3' der speichert nicht obwohl ich noch geaddet habe:
Delphi-Quellcode:
damit der weiß in welchen ordnern!
Savedialog1.InitialDir:=GetCurrentDir;
muss vll. das alles vor '\' weg? |
Re: SaveToFile [TStringgrid] ohne Tsavedialog
Guten Morgen.
Du hast geschrieben, dass du ohne einen SaveDialog speichern möchtest - dann lasse diese Komponente auch einfach weg. Es hilft nicht, wenn du die Eigenschaft InitialDir von SaveDialog auf GetCurrentDir setzt, da die Komponente diese Information nur verwendet um das Navigieren im Dateisystem zu vereinfachen. Den absoluten Dateinamen kannst du einfach bei SaveToFile() selbst eintragen. Dazu kannst du ein Verzeichnis und einen relativen Dateinamen verknüpfen - aber nicht zwei absolute Angaben. Ich habe jetzt das Gefühl, dass du garnicht den Inhalt der ersten Spalte deines StringGrids speichern willst. Außerdem ist es nicht sinnvoll die Zeichenketten aus deinem StringGrid in eine Datei mit der Erweiterung MP3 zu schreiben. Das Beste wird sein, wenn du mal einen screen shot von deinem StringGrid mit ein paar Daten anhängst und dazu genau beschreibst, was du erreichen willst. Freundliche Grüße marabu |
Re: SaveToFile [TStringgrid] ohne Tsavedialog
Liste der Anhänge anzeigen (Anzahl: 1)
naja man kann die dateien über einen topendialog in die tstringgrid laden.
das dumme ist noch, dass der komplette pfad mit in die zellen eingebunden wird. der wiedergebene inhalt des topendialogs steht in spalte 1. in spalte 2 steht der originalname der date und in der 2.spalte die dateigrössse. anhand eines filters kann man die funktion "sonderzeichen entfernen" erweitern. weitere methoden sind: großschreibung der wörter (in spalte 1) und das ganze in Winamp öffnen. mein problem besteht noch bei der save-methode. bild meines progs ist im anhang |
Re: SaveToFile [TStringgrid] ohne Tsavedialog
Wenn du einen vollständigen Dateinamen hast und möchtest den Namen ohne Pfadanteil, dann verwende die Funktion ExtractFileName().
Meine Speicherroutine in Beitrag #5 geht aufgrund von Informationslücken davon aus, dass der Dateiname in der Titelzeile steht. Hier jetzt eine angepasste Version, der du den Speichernamen mitgeben kannst:
Delphi-Quellcode:
marabu
uses
StrUtils; function SaveColumn(fn: TFileName; sg: TStringGrid; index: Integer; keepHeader: Boolean = false): Boolean; begin Result := false; if sg.RowCount = 0 then Exit; with TStringList.Create do try Assign(sg.Cols[index]); if not keepHeader then Delete(index); SaveToFile(fn); Result := true; finally Free; end; end; procedure TDemoForm.ButtonClick(Sender: TObject); begin ShowMessage(IfThen(SaveColumn('playlist.txt', StringGrid, 0), 'holiday', 'kill the cat')); end; |
Re: SaveToFile [TStringgrid] ohne Tsavedialog
jetzt weiß ich erst mal was du meinst :)
ich will nicht die spalte1 in einer txt(dein platzhalter ;)) speichern sondern die dateien, die man per topendialog in die 1.spalte lädt, die dateien sollen gespeichert werden. (z.b. wenn man eben sonderzeichen entfernt und speichern drückt, dann soll die urspgs.datei umbenannt werden. wieso speichert der überhaupt deine .txt in den ordner, wo die mp3s sind? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:09 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz