Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - cat befehl hilfe


DL_Ricko - Fr 28.08.09 02:09
Titel: cat befehl hilfe
also ich mache ein programm

Delphi-Quelltext
1:
2:
3:
4:
        if copy(Eingabevar,1,Length('cat')) = 'cat' then
        begin
            wo := copy(Eingabevar,4,Length(Eingabevar)-4);
        end;

ich habe mal ein beispiel:
wen man
cat C:/test.txt
eingibt
den soller der inhalt aus der datei in die list box geschriben werden
ich habe kein plan wie das gehen so
bitte helpft mir

MfG DL_Ricko


Moderiert von user profile iconNarses: Topic aus Sonstiges (Delphi) verschoben am Fr 28.08.2009 um 11:38


Delete - Fr 28.08.09 03:06

Boah. Bei dir ist nicht die Herausforderung dir zu helfen, sondern zu verstehen, was du willst. Eine Textdatei kann man mit der Methode Lines.LoadFromFile von TListbox in eine Listbox laden.


DL_Ricko - Fr 28.08.09 03:18

noch unverstentlicher gets nicht oder??


Delete - Fr 28.08.09 04:00

Was davon verstehst du nicht? Das war fachlich absolut korrekt ausgedrückt.

Weißt du nicht, was eine Methode ist?
Weißt du nicht, wie man in der Hilfe die Methoden von TListbox und insbesondere deren Eigenschaft Lines nachschlägt?


elundril - Fr 28.08.09 04:04

user profile iconDL_Ricko hat folgendes geschrieben Zum zitierten Posting springen:
noch unverstentlicher gets nicht oder??


sprach er und war sich nicht der ironie bewusst...

das length('cat') ist afaik unnötig, da sich die länge vom wort cat nie ändert, da kannst du gleich 3 schreiben.

in die Listbox kannst du einen datei mit AListBox.items.LoadFromFile(Dateiname); laden. in dem fall musst du das wort Dateiname in dem Befehl durch eine Variable ersetzen in der du den Dateinamen gespeichert hast. In deinem Fall sollte das die Variable wo sein. Vergiss nicht vorher zu prüfen ob die Datei überhaupt existiert.

lg elundril


DL_Ricko - Fr 28.08.09 12:14

am ich mache das mit Console.Items.LoadFromFile(wo);
Lines gips bei mir nicht


Delete - Fr 28.08.09 13:09

Sorry, mein Fehler. Lines heißt die Eigenschaft bei einem TMemo.


Kha - Fr 28.08.09 18:36

user profile iconelundril hat folgendes geschrieben Zum zitierten Posting springen:
das length('cat') ist afaik unnötig, da sich die länge vom wort cat nie ändert, da kannst du gleich 3 schreiben.
Uff! Wenn du irgendein Interesse an wartbarem Code hast, solltest du deine Beziehung zu Magic Numbers [http://en.wikipedia.org/wiki/Magic_number_%28programming%29#Unnamed_numerical_constants] überdenken ;) .


elundril - Fr 28.08.09 19:00

gut, wieder was dazugelernt, danke. :)

dann von mir aus eine konstante die cat heißt und den wert 3 besitzt, aber immer length aufrufen is schwachsinn und dauert viel zu lange, wenn man die alternativen bedenkt.

lg elundril


F34r0fTh3D4rk - Sa 29.08.09 11:24

Das kommt ganz drauf an, was der Compiler draus macht. Da length('cat') wie du schon sagst statisch ist, wird der Compiler das eventuell auch durch 3 substituieren.

mfg


Kha - Sa 29.08.09 16:46

user profile iconelundril hat folgendes geschrieben Zum zitierten Posting springen:
dann von mir aus eine konstante die cat heißt und den wert 3 besitzt, aber immer length aufrufen is schwachsinn und dauert viel zu lange, wenn man die alternativen bedenkt.
Hm, hier wäre ein "Uff!" wahrscheinlich sogar angebrachter...

Erstmal ein Detail: Length ist keine normale Funktion, sondern nimmt am Constant Folding [http://en.wikipedia.org/wiki/Constant_propagation#Constant_folding] teil. user profile iconF34r0fTh3D4rk hat also recht.

Ist aber relativ wurscht, wenn man bedenkt, dass du eine spottbillige O(1)-Funktion an einer Codestelle optimieren willst, die man wohl in Aufrufen pro Minute messen müsste. Mit solch einer Einstellung kann man vielleicht eine einzelne Funktions aufs Optimum treiben, aber sicherlich nicht wirtschaftlich Software erstellen.


elundril - Sa 29.08.09 17:05

Ok, ich gebs auf. Aber ich hoffe ich werd nicht dafür gesteinigt, wenn ich trotzdem die Methode mit der Konstanten oder mit der Zahl, dem length vorziehe.

lg elundril