AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language [Anfänger] Problem beim Einlesen und Ausgabe von Text Datein
Thema durchsuchen
Ansicht
Themen-Optionen

[Anfänger] Problem beim Einlesen und Ausgabe von Text Datein

Ein Thema von Didi1887 · begonnen am 5. Okt 2011 · letzter Beitrag vom 6. Okt 2011
Antwort Antwort
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

AW: [Anfänger] Problem beim Einlesen und Ausgabe von Text Datein

  Alt 5. Okt 2011, 08:25
Ich habe das einfach mal so geschrieben, wie man das auch in der Realität machen würde:

Delphi-Quellcode:
procedure VerladeFaesser( const VerladeDatei, ContainerDatei : TFileName; Anzahl : integer );
var
  VerladeListe, ContainerListe : TStrings;
begin

  // Ich hole mir schon mal ein leeres Blatt, ich muss ja was aufschreiben :o)

  ContainerListe := TStringList.Create;
  try

    // So mal das Blatt mit den Fässern in die Hand nehmen

    VerladeListe := TStringList.Create;
    try

      // Jetzt lese ich mal, was da so drauf steht

      VerladeListe.LoadFromFile( VerladeDatei );

     // Ok, ich soll also <Anzahl> Fässer in den Container packen

      while // Solange
        ( ContainerListe.Count < Anzahl ) // im Container nicht <Anzahl> Fässer sind
      and // und
        ( VerladeListe.Count > 0 ) // und es noch Fässer zum Verladen gibt
      do // werde ich
        begin
          ContainerListe.Add( VerladeListe[ 0 ] ); // ein Fass in den Container bringen und auf die Pack-Liste schreiben
          VerladeListe.Delete( 0 ); // und dann kann ich das Fass von meiner Verlade-Liste streichen
        end;

      // So, jetzt bin ich fertig mit dem Verladen, jetzt nur noch den Containerinhalt zu Papier bringen

      ContainerListe.SaveToFile( ContainerDatei );

    // Jetzt brauche ich die VerladeListe nicht mehr
    finally
      VerladeListe.Free;
    end;
  // und die ContainerListe kann ich auch weggeben
  finally
    ContainerListe.Free;
  end;
end;
Und effektiv enthält das 5 (!) Zeilen Logik Noch weniger Logik ... nun ja, dein Prof. scheint sehr anspruchslos zu sein
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Didi1887

Registriert seit: 5. Okt 2011
4 Beiträge
 
#2

AW: [Anfänger] Problem beim Einlesen und Ausgabe von Text Datein

  Alt 5. Okt 2011, 14:55
Delphi-Quellcode:
// Memo1 = ContainerListe
// Memo2 = VerladeListe
// OpenDialog1 = VerladeDatei
// OpenDialog2 = ContainerDatei
// das, was maximal in einen Container rein passt = Anzahl
begin
  ...
  VerladeListe.LoadFromFile(VerladeDatei.FileName);
  while (ContainerListe.Lines.Count < Anzahl) and (VerladeListe.Lines.Count > 0) do
    begin
      ContainerListe.Lines.Add(VerladeListe.Lines[0]);
      VerladeListe.Lines.Delete(0);
    end;
  ContainerListe.SaveToFile(ContainerDatei.FileName);
end;

Vielen Dank an euch!! So habe ich es hinbekommen.

Das Programm berechnet ja die max. Fässeranzahl pro Container für variable Fässermaße.
Mit der Schleife wird ja ein Container komplett beladen und die Containernummern in die zweite Textdatei geschrieben.

Indem man das erste Memo(Containerliste) durchzählt und durch die Anzahl der verladbaren Fässer pro Container teilt, kommt man ja auf die Gesamtanzahl der benötigten Container.
Ist es jetzt möglich (vielleicht mit einer zweiten Schleife?) einen Container zu beladen und Container1 drunter zu schreiben und dann eben den zweiten Container zu beladen und so weiter und so weiter....das das ganze also in der Textdatei in etwa so aussieht bis alle Fässer verladen sind?(für 10 Fässer pro Container):

Code:
39808
67362
10872
26748
91609
26630
62995
38765
28935
41792
in Container 1
59480
60755
70998
80617
61144
36405
76567
85699
11357
97761
in Container 2
...
...
Gruß
Didi

und nochmals danke...ihr habt mir wirklich sehr geholfen!
  Mit Zitat antworten Zitat
Didi1887

Registriert seit: 5. Okt 2011
4 Beiträge
 
#3

AW: [Anfänger] Problem beim Einlesen und Ausgabe von Text Datein

  Alt 6. Okt 2011, 11:02
Ich habe es jetzt versucht, das ganze mittels zwei Schleifen zu lösen, aber bei meinen relativ geringen Delphi-Verständnissen und der vielleicht fehlenden Logik, hängt sich das Programm auf bzw. friert ein, da es ja anscheinend in einer Schleife feststeckt? Ist es nicht möglich, zwei Schleifen auf diese Art und Weise zu verknüpfen

Delphi-Quellcode:
 begin

        while (Fassliste.Lines.count > 0) do

          begin

              while (Verladeliste.Lines.count < a) and (Fassliste.Lines.Count > 0)do

            begin
              Verladeliste.Lines.Add(Fassliste.Lines[0]);
              Fassliste.Lines.Delete(0);
            end;

          Fassliste.Lines.Add('--------------------')
        end;
Gruß
Didi
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.740 Beiträge
 
Delphi 6 Enterprise
 
#4

AW: [Anfänger] Problem beim Einlesen und Ausgabe von Text Datein

  Alt 6. Okt 2011, 11:30
Wegen

Code:
while (Fassliste.Lines.count > 0) do

          begin


          Fassliste.Lines.Add('--------------------')
        end;
produzierst du auf jeden Fall eine Endlosschleife, egal, was die innere Schleife macht.
Ralph
  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 18:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz