AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Fehler beim überschreiben von Datei
Thema durchsuchen
Ansicht
Themen-Optionen

Fehler beim überschreiben von Datei

Ein Thema von EWeiss · begonnen am 11. Apr 2011 · letzter Beitrag vom 12. Apr 2011
Antwort Antwort
Seite 4 von 5   « Erste     234 5      
EWeiss
(Gast)

n/a Beiträge
 
#31

AW: Fehler beim überschreiben von Datei

  Alt 12. Apr 2011, 14:32
Meinst du nicht $I- ?
Ja korrekt!

Zitat:
Wobei Seek und ReadLn garnicht zusammen funktionieren sollte.
Bei mir schon wobei ich nicht Seek sondern FSeekTo verwende was ein sehr großer Unterschied ist.
Ich fülle damit meine Variablen um nachher den start und endpunkt eines Textes über eine Abfrage besser
identifizieren zu können.

Delphi-Quellcode:
procedure FSeekTo(nReading: Integer; sBuffer: string);
begin

  New(FPBuffer);

  if nReading = 0 then
  Begin
    New(FToPBuffer);
    LineStart := FToPBuffer;
  end;

  FPBuffer^.Nr := nReading;
  FPBuffer^.Str := sBuffer;
  LineStart^.Max := nReading;
  FToPBuffer^.Ptr := FPBuffer;
  FToPBuffer := FPBuffer;

end;
Delphi-Quellcode:
  FPBuffer := LineStart;
  while (FPBuffer.Nr <= LineStart.Max) do
  begin
usw..

Aber wie schon gesagt.
Jeder so wie er am besten zurecht kommt.

EDIT:
So schlecht wie er hier hingestellt wird ist mein Code gar nicht
Einfacher wäre natürlich Copy/Paste hier aus dem Forum.


gruss

Geändert von EWeiss (12. Apr 2011 um 14:44 Uhr)
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#32

AW: Fehler beim überschreiben von Datei

  Alt 12. Apr 2011, 15:48
Die Procedure FSeekTo müsste eigentlich AppendToLinkedList heissen; denn das ist genau das was passiert: der übergebene Puffer (in Form eines String) wird an die verkettete Liste angehängt. Mit "Seek" oder "FileSeek" hat die Prozedur nix zu tun.
Namensgebung ist beim Programieren einfach sehr wichtig; das darf man nicht auf die leichte Schulter nehmen.
Andreas
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#33

AW: Fehler beim überschreiben von Datei

  Alt 12. Apr 2011, 16:26
Die Procedure FSeekTo müsste eigentlich AppendToLinkedList heissen; denn das ist genau das was passiert: der übergebene Puffer (in Form eines String) wird an die verkettete Liste angehängt. Mit "Seek" oder "FileSeek" hat die Prozedur nix zu tun.
Namensgebung ist beim Programieren einfach sehr wichtig; das darf man nicht auf die leichte Schulter nehmen.
Ich suche oder?
Daher auch die Namensgebung

PS:
Zitat:
Mit "Seek" oder "FileSeek"
Habe ich nie gesagt das es damit etwas zu tun hat..

gruss
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#34

AW: Fehler beim überschreiben von Datei

  Alt 12. Apr 2011, 16:40
Um dich etwas zu stützen - was zählt, ist, dass letzendlich alles klappt.

Genau das ist aber das Ziel und ans Ziel zu gelangen sollte nicht unnötig erschwert werden indem man sich selbst Stolpersteine in den Weg legt (indem man z.B. hardkodierte Zahlen anstatt Konstanten verwendet)
Ausschlaggebend wird das ganze dann beim Debuggen oder wiederverwenden der Codesnippets!

Letzendlich willst du, dass dein Code funktioniert. Das tut es im Moment aber was ist, wenn du nach einer 3-4 monatigen Pause wieder mal dran arbeiten und ein paar Bugs beheben willst. Dir wird dann $02 nichts sagen! Konstanten hingegen dürften verständlicher und dir somit beim Erreichen deines "Zieles" (funktionierender & wiederverwendbarer Code) behilflicher sein!

Es gibt unendlich viele Gründe, warum man Dinge richtig anpacken sollte - damit will ich nicht implizieren, dass deine Methode in irgendiner Form falsch wäre/ist. Aber es gibt bessere Wege! Und warum nicht diese begehen?



Edit: Dies bezieht sich auf diesen Text
Zitat:
Wer schreibt mir vor in welchen Stil ich schreiben muss?
Für mich zählt das ergebnis nicht ob ich eine für mich nichtssagende Konstante
verwende oder hartcode.
Solange wie der Compiler damit zurecht kommt.
Sieht man das nachher in der Compilierten EXE?

Kennst den Unterschied zwischen
Dim X% und Dim X As Integer ?

Siehste ... welche Schreibweise ist dir genehm wenn beides das gleiche Ergebnis liefert.
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG

Geändert von Aphton (12. Apr 2011 um 16:43 Uhr)
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#35

AW: Fehler beim überschreiben von Datei

  Alt 12. Apr 2011, 16:41
Ich suche oder? Daher auch die Namensgebung
Sag mal, merkst du das nicht, dass die Procedure überhaupt nichts mit "suchen", "streben nach", "forschen" oder "erlangen wollen" zu tun hat???

"AnhaengenAnVerketteListe", "Speichern" oder "Merken" wäre hier korrekte Begriffe!!
Demzufolge ist dein Prozedurname einfach sehr sehr irreführend.
"AppendToLinkedList" wäre eine wirklich passende Beschreibung für die Prozedur.
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#36

AW: Fehler beim überschreiben von Datei

  Alt 12. Apr 2011, 17:26
@Luckie:
Diese alten Pascal-Routinen nutzen IOResult und nicht GetLastError
Und in IOResult steht der letzte Fehler drin? Zumindest, wenn die Datei nicht existiert, kommt der richtige Fehlertext.

@EWeiss: Die Kritik an deinen Code war nicht persönlich gemeint nur eine Konstruktive Kritik. Nehmen wir das Beispiel mit den Konstanten. Wenn du diese hart codest und sie ändern sich mal, bin ich mir zu hundert Prozent sicher, dass du nicht alle Stellen findest, wo du sie benutzt hast. Benutzt du aber eine benannte Konstante, musst du sie nur an einer Stelle im Code ändern.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#37

AW: Fehler beim überschreiben von Datei

  Alt 12. Apr 2011, 17:27
Ich suche oder? Daher auch die Namensgebung
Sag mal, merkst du das nicht, dass die Procedure überhaupt nichts mit "suchen", "streben nach", "forschen" oder "erlangen wollen" zu tun hat???

"AnhaengenAnVerketteListe", "Speichern" oder "Merken" wäre hier korrekte Begriffe!!
Demzufolge ist dein Prozedurname einfach sehr sehr irreführend.
"AppendToLinkedList" wäre eine wirklich passende Beschreibung für die Prozedur.
Hast mich überzeugt
Werd es dann mal berichtigen.

Zitat:
@EWeiss: Die Kritik an deinen Code war nicht persönlich gemeint nur eine Konstruktive Kritik. Nehmen wir das Beispiel mit den Konstanten. Wenn du diese hart codest und sie ändern sich mal, bin ich mir zu hundert Prozent sicher, dass du nicht alle Stellen findest, wo du sie benutzt hast. Benutzt du aber eine benannte Konstante, musst du sie nur an einer Stelle im Code ändern.
Habe ich auch nicht so verstanden..
Grundsätzlich gebe ich euch ja recht.

IOResult der erste Eintrag bei Google
Delphi-Quellcode:
var F: file of Byte;
begin
 Assign(F, ParamStr(1));
 {$I-}
 Reset(F);
 {$I+}
 if IOResult = 0 then
   Writeln('Dateigröße in Byte ', FileSize(F))
 else
   Writeln('Datei nicht gefunden');
end.

gruss

Geändert von EWeiss (12. Apr 2011 um 17:30 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#38

AW: Fehler beim überschreiben von Datei

  Alt 12. Apr 2011, 17:38
Und in IOResult steht der letzte Fehler drin?
Ja.

Sobald ein Fehler auftrat, werden alle nachfolgenden Pascal-Datei-Routinen übergangen und nicht mehr ausgeführt.
Und ist {$i} aktiviert (+), dann lößt der erste Fehler eine Exception aus und die Codebearbeitung wird unterbrochen.

Achtung: Das Auslesen von IOResult setzt den internen Fehlercode wieder auf 0. (danach werden also die Dateiroutinen wieder ausgeführt)


[add]
Jetzt weiß ich auch endlich wieder, wieso ich mal auf die saublöde Idee kam, GetLastError würde seinen Fehlercode zurücksetzen.
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#39

AW: Fehler beim überschreiben von Datei

  Alt 12. Apr 2011, 17:42
IOResult der erste Eintrag bei Google
Delphi-Quellcode:
var F: file of Byte;
begin
 Assign(F, ParamStr(1));
 {$I-}
 Reset(F);
 {$I+}
 if IOResult = 0 then
   Writeln('Dateigröße in Byte ', FileSize(F))
 else
   Writeln('Datei nicht gefunden');
end.
woher weißt du, dass die Datei nicht existiert und nur nicht geöffnet werden kann, weil sie exklusiv von einem anderen Prozess geöffnet wurde?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#40

AW: Fehler beim überschreiben von Datei

  Alt 12. Apr 2011, 17:44
IOResult der erste Eintrag bei Google
Delphi-Quellcode:
var F: file of Byte;
begin
 Assign(F, ParamStr(1));
 {$I-}
 Reset(F);
 {$I+}
 if IOResult = 0 then
   Writeln('Dateigröße in Byte ', FileSize(F))
 else
   Writeln('Datei nicht gefunden');
end.
woher weißt du, dass die Datei nicht existiert und nur nicht geöffnet werden kann, weil sie exklusiv von einem anderen Prozess geöffnet wurde?
Es ist doch nur ein Beispiel von Google
Nicht meins um die alten Schalter von Turbo Pascal zu dokumentieren.
Wie sie damals angewendet wurde.

gruss
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 5   « Erste     234 5      


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 12:08 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