Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   FreePascal Kann man SaveToFile beeinflussen? (https://www.delphipraxis.net/184273-kann-man-savetofile-beeinflussen.html)

Kralle 13. Mär 2015 17:16

Kann man SaveToFile beeinflussen?
 
Moin,

kann die Art&Weise mit der die Daten bei ein
Delphi-Quellcode:
TStringList.SaveToFile()
gespeichert durch Parameter beeinflussen?
Das ich vor dem Speichern die StringList manipulieren kann ist schon klar.

Gruß Heiko

Sir Rufo 13. Mär 2015 17:36

AW: Kann man SaveToFile beeinflussen?
 
Einfach gesagt: Nein

Wenn du jetzt noch erläutern würdest, was du eigentlich erreichen möchtest, dann könnten wir dir einen Vorschlag machen.

mkinzler 13. Mär 2015 17:38

AW: Kann man SaveToFile beeinflussen?
 
Du klnntest die Methode Überladen

himitsu 13. Mär 2015 17:42

AW: Kann man SaveToFile beeinflussen?
 
Zitat:

Zitat von Kralle (Beitrag 1293399)
kann die Art&Weise mit der die Daten bei ein
Delphi-Quellcode:
TStringList.SaveToFile()
gespeichert durch Parameter beeinflussen?

Ja.

Kralle 13. Mär 2015 18:15

AW: Kann man SaveToFile beeinflussen?
 
Hallo,

Zitat:

Zitat von Sir Rufo (Beitrag 1293401)
Einfach gesagt: Nein

Okay.

Zitat:

Zitat von Sir Rufo (Beitrag 1293401)
Wenn du jetzt noch erläutern würdest, was du eigentlich erreichen möchtest, dann könnten wir dir einen Vorschlag machen.

z.B. bei Komma getrennten Texten das Komma durch ein Semikolion ersetzen oder Texte in Anführungszeichen einbetten ...

War nur eine generelle Frage, weil ich es schon oft hatte, das es irgendeinen Parameter gab, den ic so aber nicht gefunden hätte bzw. dessen Bedeutung sich mir so nicht erschlossen hätte.

Schönes Wochenende.
Heiko

Kralle 13. Mär 2015 18:17

AW: Kann man SaveToFile beeinflussen?
 
Moin,

Zitat:

Zitat von mkinzler (Beitrag 1293403)
Du klnntest die Methode Überladen

aber das wäre ja auch so als wenn ich an der StringList Änderungen vornehme.

Gruß Heiko

Dalai 13. Mär 2015 18:18

AW: Kann man SaveToFile beeinflussen?
 
Zitat:

Zitat von Kralle (Beitrag 1293407)
Zitat:

Zitat von Sir Rufo (Beitrag 1293401)
Wenn du jetzt noch erläutern würdest, was du eigentlich erreichen möchtest, dann könnten wir dir einen Vorschlag machen.

z.B. bei Komma getrennten Texten das Komma durch ein Semikolion ersetzen oder Texte in Anführungszeichen einbetten ...

Nimm dir eine weitere Stringliste (slTarget.Assign(slSource)) und führe mit dieser vor dem slTarget.SaveToFile die gewünschten Operationen durch (StringReplace o.ä.). Wo ist das Problem?

MfG Dalai

Kralle 13. Mär 2015 18:18

AW: Kann man SaveToFile beeinflussen?
 
N'abend,

Zitat:

Zitat von himitsu (Beitrag 1293404)
Zitat:

Zitat von Kralle (Beitrag 1293399)
kann die Art&Weise mit der die Daten bei ein
Delphi-Quellcode:
TStringList.SaveToFile()
gespeichert durch Parameter beeinflussen?

Ja.

Anders als durch überladen? Gibt es wirklich Parameter die Einfluß auf die gespeicherte Datei nehmen und in der OH nicht zu finden sind?

Gruß Heiko

Kralle 13. Mär 2015 18:21

AW: Kann man SaveToFile beeinflussen?
 
Hallo,

Zitat:

Zitat von Dalai (Beitrag 1293409)
Nimm dir eine weitere Stringliste (slTarget.Assign(slSource)) und führe mit dieser vor dem slTarget.SaveToFile die gewünschten Operationen durch (StringReplace o.ä.). Wo ist das Problem?

Das ich nur rein informell gefragt habe :)
Es gibt ja Parameter die mit denen man z.B. erst das Trennzeichen festlegt und dann die entsprechende Aktion ausführt.
War nur Neugier.

Gruß Heiko

Sir Rufo 13. Mär 2015 18:25

AW: Kann man SaveToFile beeinflussen?
 
Zitat:

Zitat von Kralle (Beitrag 1293407)
z.B. bei Komma getrennten Texten das Komma durch ein Semikolion ersetzen oder Texte in Anführungszeichen einbetten ...

War nur eine generelle Frage, weil ich es schon oft hatte, das es irgendeinen Parameter gab, den ic so aber nicht gefunden hätte bzw. dessen Bedeutung sich mir so nicht erschlossen hätte.

Es ist schwierig festzustellen, was du wirklich willst.

Ja, Komma, Semikolon, ... das interessiert eine StringList herzlich wenig. Bei SaveToFile werden alle Strings in eine Datei geschrieben und nach jedem String kommt ein Zeilenwechsel.

Siehst du da irgendwas mit Kommas? Ich nämlich auch nicht.

Zeig doch wie sieht die Datei jetzt aus und wie soll die aussehen.

BTW: Eine CSV-Datei kann man mit einer StringList nicht verwalten, eine Daten-Zeile aus so einer CSV-Datei allerdings schon.

himitsu 13. Mär 2015 18:38

AW: Kann man SaveToFile beeinflussen?
 
Zitat:

z.B. bei Komma getrennten Texten das Komma durch ein Semikolion ersetzen oder Texte in Anführungszeichen einbetten ...
Kommasepariert.... Delphi-Referenz durchsuchenTStrings.DelimitedText :stupid:

Kralle 13. Mär 2015 18:51

AW: Kann man SaveToFile beeinflussen?
 
Hallo,

Zitat:

Zitat von himitsu (Beitrag 1293418)
Kommasepariert.... Delphi-Referenz durchsuchenTStrings.DelimitedText :stupid:

Genau, das Beispiel suchte ich, aber ich kam nicht darauf. Danke.

Gruß Heiko

Kralle 13. Mär 2015 18:54

AW: Kann man SaveToFile beeinflussen?
 
Hallo Sir Rufo,

Zitat:

Zitat von Sir Rufo (Beitrag 1293413)
Es ist schwierig festzustellen, was du wirklich willst.

In diesem Fall: NICHTS. Hatte nur gerade "SaveToFile" am Wickel und wollte einfach nur rein Informativ wissen, ob es da was gibt.

Gruß Heiko

puderle 20. Mär 2015 14:53

AW: Kann man SaveToFile beeinflussen?
 
also anstatt die Dokumentation zu durchschauen fragst du lieber die Profis hier.

damit die sich dann um dein "nicht vorhandenes Problem" kümmern... einfach nur so weil dir das grad so einfiel :D

wo keine Parameter sind kannste auch nix eintragen... easy.

Popov 20. Mär 2015 16:28

AW: Kann man SaveToFile beeinflussen?
 
Eventuell eine Möglichkeit. Hier wird SaveToFile beeinflusst, in dem man die Klasse ändert. Das machen wir nicht im Originalcode, sondern in der eigenen Unit. Danach macht SaveToFile was wir wollen.

Ich weiß nicht ob es das ist was du gesucht hast, aber es ist eine Möglichkeit.

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls;

  //Die TStringList-Klasse wird erweitert
type
  TStringList = class(Classes.TStringList)
  public
    procedure SaveToFile(const FileName: string); override;
  end;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TStringList.SaveToFile(const FileName: string);
var
  i: Integer;
begin
  //Hier findet eine Manipulation vor dem Speichern statt.
  for i := 0 to Self.Count - 1 do
    Self[i] := IntToStr(i) + ':"' + Self[i] + '"';
   
  inherited;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  sl: TStringList;
begin
  sl := TStringList.Create;
  try
    sl.Add('Zeile 1');
    sl.Add('Zeile 2');
    sl.Add('Zeile 3');
    sl.Add('Zeile 4');
    sl.Add('Zeile 5');

    //Normales Speichern. Doch vor dem Speichern wird manipuliert.
    sl.SaveToFile(ChangeFileExt(ParamStr(0), '.txt'));
  finally
    sl.Free;
  end;
end;

end.

DeddyH 20. Mär 2015 18:28

AW: Kann man SaveToFile beeinflussen?
 
Wozu das overload? Wäre override nicht richtiger?

Popov 20. Mär 2015 18:57

AW: Kann man SaveToFile beeinflussen?
 
Ups... mein Fehler. Natürlich Override.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:21 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