AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Seltsames Memo LoadFomFile inculde Phänomen

Ein Thema von Ajintaro · begonnen am 2. Okt 2014 · letzter Beitrag vom 3. Okt 2014
Antwort Antwort
Seite 2 von 2     12
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
39.413 Beiträge
 
Delphi 11 Alexandria
 
#11

AW: Seltsames Memo LoadFomFile inculde Phänomen

  Alt 3. Okt 2014, 10:11
Wieso hab ich das gepostet?

Hab es "gefährlich" genannt und genug Gründe erwähnt es besser sowas nicht zu machen, was Uwe auch grade nochmal anschaulich demonstriert hat.
(bis auf spezielle Sonderfälle macht man sowas einfach nicht, welche hier nicht vorliegen, wenn man die Funktion reparieren würde)

True ist nunmal nicht als 1 (die Konstante True) deklariert, sondern als <>0, was die automatische Booleanauswertung ordentlich berücksichtigt.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

Geändert von himitsu ( 3. Okt 2014 um 10:16 Uhr)
  Mit Zitat antworten Zitat
Sailor

Registriert seit: 20. Jul 2008
Ort: Balaton
112 Beiträge
 
Delphi 2010 Professional
 
#12

AW: Seltsames Memo LoadFomFile inculde Phänomen

  Alt 3. Okt 2014, 10:24
Wer so was macht, gehört abgemahnt und im Wiederholungsfall gefeuert.
Oder macht Ihr auch das?

Code:
PROCEDURE Main;
 VAR
  myString: String;
         i: Integer;

 BEGIN
  Move('1234',i,4);
  IF i = 1234 
   THEN Writeln('OK!')
   ELSE Writeln('Shit!')
 END;
Man kann mit einem Hammer Nägel in die Wand oder sich auf den Daumen hauen. Ich ziehe ersteres vor. Na ja, war OT und damit Ende Gelände.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.823 Beiträge
 
Delphi 10.4 Sydney
 
#13

AW: Seltsames Memo LoadFomFile inculde Phänomen

  Alt 3. Okt 2014, 10:29
War ja nur ein Beispiel. Eine weiteres wäre der andere Wert für die Konstante True in der Sprache C, also auch alle Rückgaben von WinAPI Funktionen.

Die Konstante hat in Delphi den Wert 1 in C das binäre Komplement zu False ( 0) nämlich -1!
Und 1 ist was anderes als -1!

als True <> True.
Markus Kinzler
  Mit Zitat antworten Zitat
Sailor

Registriert seit: 20. Jul 2008
Ort: Balaton
112 Beiträge
 
Delphi 2010 Professional
 
#14

AW: Seltsames Memo LoadFomFile inculde Phänomen

  Alt 3. Okt 2014, 10:37
@Himitsu:
True ist nunmal nicht als 1 (die Konstante True) deklariert, sondern als <>0, was die automatische Booleanauswertung ordentlich berücksichtigt.

Nein, True ist nicht als <> 0 deklariert, sondern in Delphi so implementiert. True ist True und nicht 0 oder 3.5 oder HmstlBmpl. Implementierungsdetails haben in einem Programm nichts zu suchen. Das fällt einem sofort auf die Füße, wenn man z.B. unter Delphi entwickelt und dann auf andere Pascalsysteme portiert. Haben wir jahrelang so gemacht, erfolgreich. Mit obigen Tricks wären wir wohl ziemlich auf die Nase gefallen.

@MKinzler
Wenn ich mich außerhalb meiner Sprache bewege, muß ich eben aufpassen. Lies mal Integerwerte ein, die von einer IBM/360 stammen. In C gibt es im Unterschied zu Pascal keinen Wert True, das ist dort ein
#define true -1.

Aber nu is wirklich gut.
  Mit Zitat antworten Zitat
Benutzerbild von Ajintaro
Ajintaro

Registriert seit: 20. Okt 2004
Ort: Sankt Augustin
138 Beiträge
 
Delphi XE6 Starter
 
#15

AW: Seltsames Memo LoadFomFile inculde Phänomen

  Alt 3. Okt 2014, 13:59
Hi,

vielen Dank für eure Impulse. Meine Validierungsfunktion soll bei fehlerfreier Validierung TRUE zurückgeben und ansonsten FALSE. Ich dachte mit dem try-Block kann ich genau das erreichen. Aber jetzt frage ich mich, ob ich die Funktion nicht grundlegend ändern sollte.


Allerdings haben wir uns etwas vom Kurs abbringen lassen
Ich bin mir jetzt immer noch nicht sicher, wie ich den bekannten Pfad der includes so setzen kann, damit diese auch Berücksichtigung findet.

Läuft nicht:
Delphi-Quellcode:
xsd := 'C:\test.xsd';
memo_xsd.Lines.LoadFromFile(xsd);
//do validation...
Läuft:
Delphi-Quellcode:
if OpenTextFileDialog1.Execute then memo_xsd.Lines.LoadFromFile(OpenTextFileDialog1.FileName);
//do validation...
Wie mjustin bereits erwähnt hat, wird beim Benutzen des opendialogs "das Verzeichnis" richtig gesetzt, während bei LoadFromFile dies nicht der Fall ist. Was macht denn der opendialog im Detail anders?
Jaimy
DAoC 2.0 -> Camelot Unchained !
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
9.388 Beiträge
 
Delphi 11 Alexandria
 
#16

AW: Seltsames Memo LoadFomFile inculde Phänomen

  Alt 3. Okt 2014, 14:21
Wie mjustin bereits erwähnt hat, wird beim Benutzen des opendialogs "das Verzeichnis" richtig gesetzt, während bei LoadFromFile dies nicht der Fall ist. Was macht denn der opendialog im Detail anders?
Lies dir mal die Hilfe zu ofNoChangeDir in TOpenOptions durch: http://docwiki.embarcadero.com/Libra...s.TOpenOptions

Dann probier dein Beispiel mal mit beiden Einstellungen aus.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Ajintaro
Ajintaro

Registriert seit: 20. Okt 2004
Ort: Sankt Augustin
138 Beiträge
 
Delphi XE6 Starter
 
#17

AW: Seltsames Memo LoadFomFile inculde Phänomen

  Alt 3. Okt 2014, 14:49


Ah jetzt ! Uwe, der Hinweis war Gold wert ! Das Problem liegt daran, dass der OpenDialog das Arbeitsverzeichnis wechselt - das hat vermutlich auch mjustin gemeint. Ein kleines SetCurrentDir behebt das kleine, nervige Problem

Jaimy
DAoC 2.0 -> Camelot Unchained !
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 16:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf