AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein FreePascal [gelöst] Lazarus: SaveToFile geht nicht
Thema durchsuchen
Ansicht
Themen-Optionen

[gelöst] Lazarus: SaveToFile geht nicht

Ein Thema von Kralle · begonnen am 17. Feb 2015 · letzter Beitrag vom 17. Feb 2015
Antwort Antwort
Seite 1 von 3  1 23      
Kralle

Registriert seit: 31. Okt 2004
Ort: Bremerhaven
355 Beiträge
 
Delphi XE7 Professional
 
#1

[gelöst] Lazarus: SaveToFile geht nicht

  Alt 17. Feb 2015, 13:51
OS: Windows 8.1 Professional 64-Bit
Dateisystem: NTFS
IDE: Lazarus 1.2.6
FPC: 2.6.4

Moin,

wedwer das :
Delphi-Quellcode:
procedure TForm1.MenuItem5Click(Sender: TObject);
var tempstr: string;

begin

 if SaveDialog1.Execute then
 begin
      tempstr:=SaveDialog1.FileName;
      sl.SaveToFile(tempstr);
 end;
end;
noch das :
Delphi-Quellcode:
procedure TForm1.MenuItem5Click(Sender: TObject);

begin

 if SaveDialog1.Execute then
      sl.SaveToFile(SaveDialog1.FileName);
 end;
Funktionieren. Beim ersten steht der richtige Pfad beim Debug in der Variablen,
aber das Speichern führt bei beiden trotzdem zu der Meldung:

Zitat:
Projekt .. hat Exception-Klasse >>External: SIGGEGV<< ausgelöst. Bei Adresse 4441434C
Warum? Was läuft da falsch?

Gruß heiko
OS: Windows 10 Professional, Delphi XE7 Pro SP1 +(Mobilpack & FireDAC)

Geändert von Kralle (17. Feb 2015 um 15:06 Uhr) Grund: Tippfehler und Ergänzung
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Lazarus: SaveToFile geht nicht

  Alt 17. Feb 2015, 14:00
Was ist s1, wo wurde das kreiert?
Beim 2. Beispiel ist tempstr nicht zugewiesen.
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.618 Beiträge
 
Delphi 12 Athens
 
#3

AW: Lazarus: SaveToFile geht nicht

  Alt 17. Feb 2015, 14:04
Die nötigen Rechte sind aber vorhanden? Und wozu der temporäre String, sofern er nicht anderweitig noch gebraucht wird?
Delphi-Quellcode:
if SaveDialog1.Execute then
  sl.SaveToFile(SaveDialog1.Filename);
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#4

AW: Lazarus: SaveToFile geht nicht

  Alt 17. Feb 2015, 14:38
SIGSEGV (segmentation violation) entspricht einer Access Violation (siehe http://en.wikipedia.org/wiki/Segmentation_fault).

Bei der Variablen sl (SL) handelt es sich dann vermutlich eine nicht instanziierte TStringList.
Michael Justin
  Mit Zitat antworten Zitat
Kralle

Registriert seit: 31. Okt 2004
Ort: Bremerhaven
355 Beiträge
 
Delphi XE7 Professional
 
#5

AW: Lazarus: SaveToFile geht nicht

  Alt 17. Feb 2015, 14:42
Moin,

Was ist s1, wo wurde das kreiert?
sl ist eine StringList die Gobaldefiniert wurde und in Form.Create erzeugt wird.
Das Füllen der Liste funktioniert.
Beim 2. Beispiel ist tempstr nicht zugewiesen.
Tippfehler - berichtigt.

Kann es sein das es irgendein Problem mit den Zeichensätzen zwischen Lazarus/Free Pascal und Windows ist?

Gruß HEiko
OS: Windows 10 Professional, Delphi XE7 Pro SP1 +(Mobilpack & FireDAC)
  Mit Zitat antworten Zitat
BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#6

AW: Lazarus: SaveToFile geht nicht

  Alt 17. Feb 2015, 14:43
SIGSEGV (segmentation violation) entspricht einer Access Violation (siehe http://en.wikipedia.org/wiki/Segmentation_fault).

Bei der Variablen sl (SL) handelt es sich dann vermutlich eine nicht instanziierte TStringList.
Nicht nur vermutlich.

Die Fehlermeldung kommt, wenn auf ein Objekt zugegriffen werden soll, welches nicht erstellt wurde.

sl ist eine Stringlist (vergleiche andere Posts des TE), welche nicht erstellt wurde (also kein Create).


Zeig uns einmal die "FormCreate"-Procedure.
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.
  Mit Zitat antworten Zitat
Kralle

Registriert seit: 31. Okt 2004
Ort: Bremerhaven
355 Beiträge
 
Delphi XE7 Professional
 
#7

AW: Lazarus: SaveToFile geht nicht

  Alt 17. Feb 2015, 14:44
Moin,

Die nötigen Rechte sind aber vorhanden?
Ja.

Und wozu der temporäre String, sofern er nicht anderweitig noch gebraucht wird?
Delphi-Quellcode:
if SaveDialog1.Execute then
  sl.SaveToFile(SaveDialog1.Filename);
Um zu sehen ob Filename irgendwelche "ulkigen" Zeichen aufgrund irgendwelcher Schriftsatzproblem enthält.

Gruß HEiko
OS: Windows 10 Professional, Delphi XE7 Pro SP1 +(Mobilpack & FireDAC)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.618 Beiträge
 
Delphi 12 Athens
 
#8

AW: Lazarus: SaveToFile geht nicht

  Alt 17. Feb 2015, 14:46
Zeig mal mehr Code, das wird sonst ein lustiges Rätselraten. Die Stringliste existiert zu diesem Zeitpunkt auf jeden Fall, oder wird sie ggf. vor dem FormDestroy wieder freigegeben?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#9

AW: Lazarus: SaveToFile geht nicht

  Alt 17. Feb 2015, 14:46
sl ist eine StringList die Gobaldefiniert wurde und in Form.Create erzeugt wird.
Das Füllen der Liste funktioniert.
Wird der richtige Inhalt der StringList im Debugger angezeigt bevor der SaveToFile Aufruf stattfindet?
Michael Justin
  Mit Zitat antworten Zitat
Kralle

Registriert seit: 31. Okt 2004
Ort: Bremerhaven
355 Beiträge
 
Delphi XE7 Professional
 
#10

AW: Lazarus: SaveToFile geht nicht

  Alt 17. Feb 2015, 14:47
Mpoin,

SIGSEGV (segmentation violation) entspricht einer Access Violation (siehe http://en.wikipedia.org/wiki/Segmentation_fault).

Bei der Variablen sl (SL) handelt es sich dann vermutlich eine nicht instanziierte TStringList.
Also, sl ist eine StringList und ja sie ist instanziiert, sonst könnte ich sie ja nicht mit Inhalten zur Laufzeit befüllen oder?

Delphi-Quellcode:
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  Form1: TForm1;
  sl: TStringList;
implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.FormCreate(Sender: TObject);
begin
   sl:= TStringList.Create;
end;
Gruß HEiko
OS: Windows 10 Professional, Delphi XE7 Pro SP1 +(Mobilpack & FireDAC)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 07:20 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