Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Fragen bezüglich Stringlisten und Parallelem Port (https://www.delphipraxis.net/84050-fragen-bezueglich-stringlisten-und-parallelem-port.html)

JD_1 10. Jan 2007 16:59


Fragen bezüglich Stringlisten und Parallelem Port
 
Hallo an die fleißigen User hier,

ich bin Newbee beim Delphi-Programmieren und hab gleich ein paar Fragen:

Ich habe eine Stringliste erstellt(aus einigen Elementen) und im Txt Format abgespeichert.
Nun will ich an die abgespeicherte TStringList eine weitere TStringList anhängen-wie geht das?

Code:
if FileExists('c:\'+DateToStr(now)+'.txt') then
begin
    ???????????????
end
else
    Protokoll.SaveToFile('c:\'+DateToStr(now)+'.txt');
Die 2te Frage gilt der Interaktion über Parallele Ports.
Ich muss über Pin 10 und Pin 11 einlesen und sobald diese auf HIGH gesetzt werden muss ein bestimmter Programmteil gestartet werden. Mein Problem dabei speziell ist, dass ich über die inpout.dll und dem code:
[code]
spsKarteDa:=Inp32($379);
spsKarteDa:=StrToInt(dezToBin(spsKarteDa));
until stoppressed or (spsKarteDa=3);
[\code]
die codzeile ja byteweise auslesen muss. kann ich dann einfach sagen spskarteDa=3, wenn er nur reagieren soll, wenn Pin 10+11 auf High sind?


Und die letzte Frage ist das setzen einzelner Bits eines Bytes. Nachdem der Programmteil abgelaufen ist, soll über D0 der HIGH-Pegel gesetzt werden, wenn es erfolgreich verlaufen ist und über D1 HIGH, wenn es nicht erfolgreich war.
Wie kann ich dies mit der Funktion out32($378,???) realisieren?



Vielen, vielen Dank für eure Hilfe!

MFG JD

Nils_13 10. Jan 2007 17:03

Re: Fragen bezüglich Stringlisten und Parallelem Port
 
Hi, und herzlich Willkommen!

Dieser Code sollte das 1. Problem lösen:
Delphi-Quellcode:
if FileExists('C:\' + DateToStr(now) + '.txt') then
begin
  deineanderestringlist.LoadFromFile('C:\' + DateToStr(now) + '.txt');
end else
begin
  Protokoll.SaveToFile('C:\' + DateToStr(now) + '.txt');
end;

JD_1 10. Jan 2007 17:11

Re: Fragen bezüglich Stringlisten und Parallelem Port
 
huuiii das ging aber schnell...
bloß durch den quellcode seh ich nicht ganz durch...ich erstelle in meinem Programm eine stringliste namens Protokoll, welche dann unter dem heutigen datum abgespeichert wird. wird nun an dem gleichen tag das programm nochmal aufgerufen, wird ja wieder eine stringliste namens protokoll erstellt. diese strings bzw diese stringliste soll nun an die vorhandene datei angehangen werden.in deim abschnitt von dir sehe ich bloß, dass die datei, wenn sie schon gibt geladen wird oder eine neue erzeugt wird. der teil des anhängens fehlt-oder verstehe ich dsa bloß noch nicht?

MFG JD

shmia 10. Jan 2007 17:14

Re: Fragen bezüglich Stringlisten und Parallelem Port
 
Mit folgender Procedure kann man eine StringListe (bzw. alles, was von TStrings abgeleitet wurde) an eine schon bestehende Datei anhängen:
Delphi-Quellcode:
procedure AppendTStringsToFile(sl:TStrings; const filename:string);
var
   stream : TStream;
const
   SO_END=2;
begin
   if FileExists(filename) then
   begin
      stream := TFileStream.Create(filename, fmOpenReadWrite or fmShareDenyWrite);
      stream.Seek(0, SO_END);
   end
   else
      stream := TFileStream.Create(filename, fmCreate or fmShareDenyWrite);
   try
      sl.SaveToStream(stream);
   finally
      stream.Free;
   end;
end;

inherited 10. Jan 2007 17:22

Re: Fragen bezüglich Stringlisten und Parallelem Port
 
Warum so kompliziert?
Delphi-Quellcode:
if FileExists('C:\' + DateToStr(now) + '.txt') then
begin
  deineanderestringlist.LoadFromFile('C:\' + DateToStr(now) + '.txt');
  deineanderestringlist.AddStrings(Protokoll);
  deineanderestringlist.savetofile...
end else
begin
  Protokoll.SaveToFile('C:\' + DateToStr(now) + '.txt');
end;

shmia 10. Jan 2007 17:24

Re: Fragen bezüglich Stringlisten und Parallelem Port
 
Zitat:

Zitat von inherited
Warum so kompliziert?

Weil's Speicher-Resourcen spart und die schon gespeicherten Daten brauchen nicht nochmals gespeichert werden.. :wink:
Bei wenig Daten spielt das natürlich keine Rolle.

Olli 10. Jan 2007 17:32

Re: Fragen bezüglich Stringlisten und Parallelem Port
 
Zitat:

Zitat von JD_1
Und die letzte Frage ist das setzen einzelner Bits eines Bytes. Nachdem der Programmteil abgelaufen ist, soll über D0 der HIGH-Pegel gesetzt werden, wenn es erfolgreich verlaufen ist und über D1 HIGH, wenn es nicht erfolgreich war.
Wie kann ich dies mit der Funktion out32($378,???) realisieren?

Wenn es fuer dich privat ist, mit einem Treiber der generischen Portzugriff erlaubt. Ansonsten besser garnicht ... kannst allerdings auch gern mein LptAccess testen (das ist nicht-generischer Portzugriff ... eben nur LPT).

Klick mich :mrgreen:

DP-Maintenance 10. Jan 2007 20:16

DP-Maintenance
 
Dieses Thema wurde von "Christian Seehase" von "Programmieren allgemein" nach "Sonstige Fragen zu Delphi" verschoben.
Delphi-Problem

JD_1 10. Jan 2007 20:20

Re: Fragen bezüglich Stringlisten und Parallelem Port
 
Vielen, Vielen DANK!

ich werde das alles morgen gleich probieren.

Echt super kompetente leute hier! Klasse forum!

berichte dann morgen weiter obs geklappt hat bzw wo es noch gehakt hat!


wünsche allseits schönen abend!

JD_1 12. Jan 2007 10:41

Re: Fragen bezüglich Stringlisten und Parallelem Port
 
hat alles super geklappt. habe die sache mit den stringlisten von shmia genomme, was einwandfrei funktioniert und die sache mit den parallelport hab ich so gelöst:

klick mich....übrigens sehr gut beschrieben!


besten dank nochmal an die schnelle uns gute hilfe!

MFG JD


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:25 Uhr.
Seite 1 von 2  1 2      

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