AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zuweisungen Variablen, Array?

Ein Thema von skaven · begonnen am 26. Okt 2004
Antwort Antwort
skaven

Registriert seit: 13. Okt 2004
87 Beiträge
 
#1

Zuweisungen Variablen, Array?

  Alt 26. Okt 2004, 11:43
Hallo zusammen, erst mal einen wunderschönen Dienstag, haben es ja bald geschafft, das We ist zum greifen nah
Think positiv.

Folgendes Problem, habe ien Programm geschrieben das einen Com Port ausliest und mir einen Zahlenwert aus einem String ausschneidet.

Es werden mehrere Zahlenwerte ausgelesen und ich würde diese gerne in variablen speichern, weil ich die letzten beiden auf >=10 vergleichen möchte um eine schleife zu beenden.

Habe gedacht das ich diese mit einem array versuche, aber leider funktioniert das nicht so. Irgendwo ist in dem array eine falsche Zuweisung.

Vielleicht habe ich das acuch falscg generiert, keine Ahnung, HILFE

Delphi-Quellcode:
procedure TForm1.DateieinlesenClick(Sender: TObject);
var
   Liste : TStringList;
   i,x, data_length, firstnumber, lastnumber, result, value, differenzwert : Integer;
   hilftext, data, filename, last_value : String;
   prdwerte : array of integer;
   begin
   liste :=tstringlist.create;
  if OpenDialog1.Execute then { Dialog zum Dateiöffnen anzeigen }
  begin
    filename := OpenDialog1.FileName;
   try
    Liste.LoadFromFile(filename);
    for i := 0 to Liste.Count-1 do
      begin

      {comport komplett leerlesen}
      while (ApdComPort1.CharReady) do {ComPort wird komplett ausgelesen}
            begin
             Data := data+ApdComPort1.GetChar; {ComPort wird ausgelesen}
            end;
       data := '';

       apdcomport1.putstring(Liste[i]); {Übermittelt Daten aus Com1}
       apdcomport1.putstring(#13);

       { Bestätigung des ersten Befehles loeschen }
       while (pos('>',data) = 0) do
          while (ApdComPort1.CharReady) do {ComPort wird komplett ausgelesen}
            begin
             Data := data+ApdComPort1.GetChar; {ComPort wird ausgelesen}
            end;
       data := '';
       repeat
         apdcomport1.putstring('prd');
         apdcomport1.putstring(#13);

       { Zeichen einlesen bis Endzeichen ">" }
         while (pos('>',data) = 0) do
          while (ApdComPort1.CharReady) do {ComPort wird komplett ausgelesen}
            begin
             Data := data+ApdComPort1.GetChar; {ComPort wird ausgelesen}
            end;
       begin
        firstnumber := 0;
        lastnumber := 0;
        hilftext := '';
         {Ermittlung der Zahlenposition}
        while (firstnumber < Length(data)) and not (data[firstnumber] in ['1'..'9','0']) do
          Inc(firstnumber);
          lastnumber := firstnumber;
          {auslesen und speichern der Zahlen}
         while (lastnumber < Length(data)) and (data[lastnumber] in ['1'..'9','0']) do
          begin
          hilftext := hilftext + data[lastnumber];
          Inc(lastnumber);
         end;
         value:=StrToInt(hilftext);
         memo1.text := memo1.text + IntToStr(value);

        // {speichern der Zahlenwerte in einem Array}
           Setlength(prdwerte,length(prdwerte)+length(hilftext));
         data_length:=length(hilftext);
         for x:=1 to data_length do
         begin
             prdwerte[Length(prdwerte) - Length(hilftext)+ x] := strtoint(hilftext[x]);
              end;
         end;

       until differenzwert<=10;
      end;
          finally
    Liste.Free;
   end;
  end;
end;
Nochmal das ganze Zusammengefaßt:
"Ich frage einen com port ab und speicher diesen wert in der Variablen value ab.
Jetzt soll die schleife nochmals durchlaufen und der com port wird nochmal abgefragt, der neue wert soll z.b. in der variablen value_new abgespeichert werden.
Jetzt habe ich zwei Variablen, diese beiden würde ich gerne auf <=10 vergleichen, falls es der fall ist, soll die repaet until schleife beendet werden, falls nicht, soll ein weiterer wert ausgelesen werden, diesem eine neue variable zugewiesen werden und diese neue mit der letzten, also value_new auf <=10 verglichen werden, und immer weiter so bis die Bedingung erfüllt ist und die Schleife somit beendet werden kann. "

Wäre echt nett wenn jemand ne Idee hat. Vielleicht habe ich auch den total falschen Programmier Ansatz gewählt
  Mit Zitat antworten Zitat
Antwort Antwort


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 19:54 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