Autor Beitrag
Johannes Maier
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 173

Win XP
D7 Prof
BeitragVerfasst: Fr 23.04.04 20:30 
Mach es doch einfach OHNE eine StringList :!:
Mit Assign, Reset, Rewrite oder so geht das bei den wenigen Zahlen die du benutzt viel einfacher!
Den Code hab ich oben schon zweimal gepostet. Das auf mehr Variablen auszudehnen dürftest du wohl alleine schaffen :wink:

MfG
Johannes

_________________
MfG
Johannes ehem. jbmaier
ForzaFCH Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 80


D6 / D7 Personal
BeitragVerfasst: Mo 26.04.04 15:34 
also wie gesagt. wenn ich es so mache wie du meintest dann schmiert mir delphi ab. ich hab bei mir jetzt mal versucht mit capity zu arbeiten nur weiß ich gar nicht was der befehl genau macht :shock:

_________________
HANSA ROSTOCK DU SOLLST STRAHLEN..... *sing* Für immer und ewig FC hansa Rostock!
ForzaFCH Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 80


D6 / D7 Personal
BeitragVerfasst: Mi 28.04.04 10:01 
ich möchte gerne aus einer TextFile die werte in eien Stringlist laden. und den wert aus eienr StringList möchte ich dann in einer Variablen speichern damit ich dann den Wert auch als x-Koordinate zum zeichnen verwenden kann.

_________________
HANSA ROSTOCK DU SOLLST STRAHLEN..... *sing* Für immer und ewig FC hansa Rostock!
bms
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 735

Win XP
Delphi 3, Delphi 6 PE, Delphi 2005 PE
BeitragVerfasst: Mi 28.04.04 10:17 
@ForzaFCH

Eine Antwort hättest du schon sehr, sehr sehr früh haben können. Eine Antwort mit der du auch etwas anfangen kannst. Der Grund wieso es sich so zieht ist, daß du deine Frage so bescheuert formulierst. Du hast ein konkretes Problem, stellst aber deine Frage so allgemein, daß alle nur um das Problem herumreden können. Mit deiner Frage oben kann keiner so richtig was anfangen.

Warum stellst du z.B. immer noch die Frage wie man eine Textdatei in eine StringList laden kann. Das müßtest du inzwischen wissen. Jetzt werden zig Leute sich erst um dieses Problem kümmern. Die andere Sache sind die Koordinate. Keiner weiß so richtig wie sie bei dir aussehen. Deshalb weiß auch keiner was du wissen willst. Deshalb kriegst du jede menge wirrer Antworten mit denen du wiederum nichts anzufangen weißt.

Rauf dich auf und mach eine richtige Problembeschreibung. Gib Beispieldaten wie das bei dir aussieht. Was brauchst du? Wieviel brauchst du? Was machen die? Solange du das nicht machst wird sich nichts ändern.

Ich kann dir sofort ein Beispiel machen und ich wette mit dir, daß es beim ersten mal richtig wird. Es wird sogar so einfach sein, daß du es nachvolziehen kannst. Ich mache es aber nicht, denn ich hab keine Lust, daß du dann kommst und sagst, daß du das anders meinst. Nicht ich bin dafür verantwortlich dich auszufragen wie du es haben möchstest, sondern du muß mir sagen wie deine Aufgabenstellung aussieht.

_________________
VORSICHT: Ich behersche seit heute die Fünf-Finger-Handflächen-Herz-Explodier-Schlag-Kampf-Technik >:(
ForzaFCH Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 80


D6 / D7 Personal
BeitragVerfasst: Mi 28.04.04 10:50 
jo ich würd es ja gern formulieren, nur bin ich neu in der delphi szene aber ich werds mal probieren.

also meinen sourcecode kannsch jetzt nicht abtippen , weil der gesamte code auf meinen laptop liegt und ich auch keine möglichkeit hab den auf den rechner meiener firma hier raufzuspielen :)

also mein Ziel: Berechnung von Kenngrößen wie (Widerstand, Stromstärke, Spannung)
die werte von Widerstand und Spannung sollen dann in 2 unterschiedlichen Textdateien abgespeichert werden.
sprich

edit1.txt
ausblenden Quelltext
1:
2:
3:
4:
5:
12
24
10
5
120

das wären dann z.B. meine X-Werte

edit2.txt
ausblenden Quelltext
1:
2:
3:
4:
5:
7
13
190
12
4

das wären dann z.B. meine Y-Werte

ich will nämlich dann eien R/U Kennlinie in einem KoordinatenSystem darstellen.
das berechnen funktioniert soweit auch schon alles nun hab ich aber das Problem das ich die Werte aus meinen Textdatein in einer Variable speichern will.
damit ich die Kurve oder gerade dann nicht absolut zeichne sondern halt von den werten in meiner Textdatei abhänig zeichne.
hab die Werte dann in eine StringList gelden. meine frage wär also wie ich die werte die in einer StringList stehen als Variabel definiere.
ausblenden Delphi-Quelltext
1:
SX:= ListX. ???(0);					

irgendwie so hät ich mir das gedacht hab aber noch nich wirklich was hinbekommen.

und dann würd ich noch gerne wissen wie ich das dann egnau zeichne weil zur zeit kann ich nur eien gerade zeichen. aber will ja das eine linie vom Koordinatenurpsrung gezeichnet wird und dann dann wieder zurück und das nächste paar als linie zeichnet :)

ausblenden Delphi-Quelltext
1:
2:
korSystem.Canvas.MoveTo(200,200); // hier gehe ich zum Koordinatenurpsrung
korSystem.Canvas.LineTo(200+(StrToInt(SX));200-(StrToInt(SY))); // hier will ich halt die Linie zeichnen (R/U- Kennlinie)

_________________
HANSA ROSTOCK DU SOLLST STRAHLEN..... *sing* Für immer und ewig FC hansa Rostock!
bms
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 735

Win XP
Delphi 3, Delphi 6 PE, Delphi 2005 PE
BeitragVerfasst: Mi 28.04.04 11:51 
Gehören die X und Y Werte zusammen und bilden sie ein Koordinatenwert? Warum dann auf zwei Dateien verteilen?

Als Lösung hab ich was anderes gemacht. Ich hab die Werte in eine Datei gepackt und sie mit einem Semikolon getrennt:

ausblenden Quelltext
1:
2:
3:
4:
5:
12;7
24;13
10;190
5;12 
120;4


Der erste Wert ist bei mir X, der Zweite ist Y. Um sie zu trennen hab ich Funktion ZeichenKetteAufloesen geschrieben. Da es mindestens zwei Rückgabewerte gibt, hab ich die Ausgabe der x, y Werte in den Parameterbereich gelegt und hab der Funktion eine Fehlermeldung spendiert. Die Werte x, y hab ich, da es strings sind, s1 und s2 genannt. Ansonsten hab ich anstelle eines StringList im Beispiel ein Memo genommen. Du kannst es aber jede Zeit mahen wie du willst.

Für das Beispiel machst du ein leeres Projekt und legst eine Memo und ein Button auf das Formular.

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
function ZeichenKetteAufloesen(s: Stringvar s1, s2: String): Word;
const
  d = ';';
begin
  s := Trim(s);

  Result := 1// Wert für Zeile hat keinen Trenner.
  if Pos(d, s) = 0 then Exit;

  Result := 2// Wert für Trenner ist an ersten Stelle.
  if Pos(d, s) = 1 then Exit;

  s1 := Trim(Copy(s, 1, Pos(d, s) - 1));
  Delete(s, 1, Pos(d, s));
  s2 := Trim(s);

  Result := 0// Wert für kein Fehler

  // Die Werte sind jetzt in s1 und s2
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
  s, s1, s2: String;
begin
  Canvas.MoveTo(0,0);

  with Memo1.Lines do
    for i := 0 to Count - 1 do
    begin
      s := Strings[i];
      if Trim(s) = '' then Continue;

      if ZeichenKetteAufloesen(s, s1, s2) > 0 then
      begin
        MessageDlg('Fehlerhafte Werte in Zeile: ' + IntToStr(i + 1),
          mtError, [mbOK], 0);
        Exit;
      end;

      Canvas.LineTo(StrToInt(s1), StrToInt(s2));
    end;
end;

_________________
VORSICHT: Ich behersche seit heute die Fünf-Finger-Handflächen-Herz-Explodier-Schlag-Kampf-Technik >:(
ForzaFCH Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 80


D6 / D7 Personal
BeitragVerfasst: Mi 28.04.04 12:27 
ich probiers mal :roll:

_________________
HANSA ROSTOCK DU SOLLST STRAHLEN..... *sing* Für immer und ewig FC hansa Rostock!
ForzaFCH Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 80


D6 / D7 Personal
BeitragVerfasst: Mi 28.04.04 12:30 
also ich würd es gerne mit der stringlist arbeiten. aber bei der gibt es ja nicht so einen befehl wie bei dem memo de lines befehl.
ich bräuchte sozusagen nur die form wie ich den wert aus eienr stringlist in eien variable speicher :roll:

_________________
HANSA ROSTOCK DU SOLLST STRAHLEN..... *sing* Für immer und ewig FC hansa Rostock!
bms
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 735

Win XP
Delphi 3, Delphi 6 PE, Delphi 2005 PE
BeitragVerfasst: Mi 28.04.04 12:55 
Tut mir leid, ich gebe es auf. Du hast anscheinend keine Ahnung von Delphi und versuchst dir ein Programm zusammen zu schnoren. Memo1.Lines ist TStrings und StringList ist auch TStrings. Verstanden? Nix mehr Befehle. Du brauchst nur Memo1.Lines gegen den Namen deiner StringList zu tauschen und schon funktioniert das alles mit StringList. Zwischen Memo1.Lines und StringList gibt es keinerlei unterschied. Guckst du auch schon mal in die Delphihilfe und zu sehen was dir die Leute für Tips geben? Oder funktioniert das bei dir so, daß due es ausprobiers und wenn es nicht so funktioniert wie du es willst, dann fragst du noch mal. Irgendwie schon auf die Idee gekommen selbst den Code anzupassen?

Aber das alles kann man noch vergeben. Was dich aber für jeglich weitere Hilfe disqualifiziert ist dieser Satz:

Zitat:
ich bräuchte sozusagen nur die form wie ich den wert aus eienr stringlist in eien variable speicher


Du blickst komplett nicht durch. Du hast Null Ahnung was da vor sich geht und deshalb stellst du solche Fragen. Du kennst Begriffe, kannst aber mit denen nichts anfangen.

Ich hab dir gerade gezeigt wie du Werte aus StringList an eine Variable übergibst (nicht speichern, das ist falsch). Und dennoch fragst du noch mal. StringList ist eine Liste mit String-Zeilen. Du kannst dir eine Zeile nehmen und zu Integer konvertieren. Aber da blickst du sowieso nicht durch.

_________________
VORSICHT: Ich behersche seit heute die Fünf-Finger-Handflächen-Herz-Explodier-Schlag-Kampf-Technik >:(
ForzaFCH Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 80


D6 / D7 Personal
BeitragVerfasst: Mi 28.04.04 13:01 
beruhig dich mal wieder. ich hab doch auch oben schonmal gesagt das ich noch nicht lange mit delphi arbeite. und die hilfe hab ich auch benutzt sonst wäre ich auch nicht so weit gegkommen. aber wenn du meinst das ich mir was zusammenschnorre ist das deine meinung die ich zwar nicht teile aber egal. ich hab hier keinnen gebeten mir das fertige programm zu geben. ich wollte nur die syntax eine befehles haben. nix weiter. und du machst gleich ein fass auf. wenn ich das da bloß ersetzten muss is ja jut wußte ich ja nicht.

no comment

_________________
HANSA ROSTOCK DU SOLLST STRAHLEN..... *sing* Für immer und ewig FC hansa Rostock!


Zuletzt bearbeitet von ForzaFCH am Mi 28.04.04 13:32, insgesamt 1-mal bearbeitet
bms
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 735

Win XP
Delphi 3, Delphi 6 PE, Delphi 2005 PE
BeitragVerfasst: Mi 28.04.04 13:08 
Du verstehst es anscheinend noch nicht. Es gibt nicht den Befehl. Das gibt es nicht. Das mußt du über viele Zeilen lösen. Dein Problem hab ich schon im zweiten Beitrag erkannt. So klug ist Delphi nun auch nicht, daß es wüßte was du willst.

Zitat:
wenn ich das da bloß ersetzten muss is ja jut weußte ich ja nicht.


Sowas weiß man aber wenn man sich das Beispiel genauer anguckt und man alles was man nicht versteht in der Hilfe anguckt.

_________________
VORSICHT: Ich behersche seit heute die Fünf-Finger-Handflächen-Herz-Explodier-Schlag-Kampf-Technik >:(
ForzaFCH Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 80


D6 / D7 Personal
BeitragVerfasst: Mi 28.04.04 13:34 
aha. ich hab es zwar jetzt auch mal mit deinen hinweis versucht aber klappen tut es nicht. naja irgenwann werd ich auch das hinbekommen :(

_________________
HANSA ROSTOCK DU SOLLST STRAHLEN..... *sing* Für immer und ewig FC hansa Rostock!
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mi 28.04.04 13:52 
So, Leute, jetzt beruhigt Euch erst mal wieder. Es bringt niemanden weiter, wenn man den anderen angreift.

Zitat:
aha. ich hab es zwar jetzt auch mal mit deinen hinweis versucht aber klappen tut es nicht. naja irgenwann werd ich auch das hinbekommen
Dann zeige doch, wie der Quelltext aussieht, mit dem Du es versucht hast, und wir sagen Dir, was Du falsch machst.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
ForzaFCH Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 80


D6 / D7 Personal
BeitragVerfasst: Mi 28.04.04 14:06 
wie schonmal geschrieben.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
var Sx,Sy :String
ListX: TStrings; 
ListY: TStrings; 
..... 
begin 
ListX := TStringList.Create; 
ListY := TStringList.Create; 
ListX.LoadFromFile('c:\edit.txt'); 
ListY.LoadFromFile('c:\edit2.txt'); 
SX:=FloatToStr(ListX. ...); // und hier dachte ich mir das so irgendwie realisieren zu können weil ich den wert aus der list ja in der varibalen haben will
SY:=FloatToStr(ListY. ...);
begin 
KorSystem.Canvas.moveto(200,220); // Nullpunkt wird definiert 
KorSystem.Canvas.LineTo(StrToInt(Sx),StrToInt(Sy)); 
end
end;


das halt der teil der hierfür wichtig ist denek ich mal :)

_________________
HANSA ROSTOCK DU SOLLST STRAHLEN..... *sing* Für immer und ewig FC hansa Rostock!
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mi 28.04.04 14:17 
Hm. Du scheinst nicht wirklich viel von den Anregungen, die Du durch den Quelltext von bms erhalten haben solltest, umgesetzt zu haben.

Also, der Reihe nach:
ausblenden Delphi-Quelltext
1:
2:
SX:=FloatToStr(ListX. ...); // und hier dachte ich mir das so irgendwie realisieren zu können weil ich den wert aus der list ja in der varibalen haben will
SY:=FloatToStr(ListY. ...);
Kann nicht gehen. Denn Sx hält nur eine Zahl, ListX enthält ja nun aber ziemlich viele Zahlen. Du musst also irgendwie angeben, welche der Zahlen aus ListX Du in SX haben willst. Wie das geht, hat Dir bms bereits gezeigt:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
  with Memo1.Lines do
    for i := 0 to Count - 1 do
    begin
      s := Strings[i];


Damit kannst Du (wenn Du es an Deine Bedürfnisse anpasst) die Zeilen (und dmait auch Zahlen) in der StringList einzeln durchgehen. Und dann nach einander zeichnen.

MfG
Peter

P.S.:
Zitat:
ch hab es zwar jetzt auch mal mit deinen hinweis versucht
Hm, also in dem von Dir geposteten Quellcode steckt aber rein gar nichts von bms' Hinweisen .... :?

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
ForzaFCH Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 80


D6 / D7 Personal
BeitragVerfasst: Mi 28.04.04 14:19 
hab ich ja auch wieder rückgänig gemacht. :)

_________________
HANSA ROSTOCK DU SOLLST STRAHLEN..... *sing* Für immer und ewig FC hansa Rostock!
ForzaFCH Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 80


D6 / D7 Personal
BeitragVerfasst: Mi 28.04.04 14:23 
ICH HAB ES HINBEKOMMEN :) ob ihr glaubt oder nicht :)

jetzt sag ich ihm ja das er den Str in einen Integer umwandeln soll, bevor er es zeichnet
ausblenden Delphi-Quelltext
1:
 KorSystem.Canvas.LineTo(200+StrToInt(SX),200-StrToInt(Sy));					

aber es kommt bei mir vor das ich auch komma werte rausbekomme. muss ich dann noch mit StrTofloat arbeiten?

_________________
HANSA ROSTOCK DU SOLLST STRAHLEN..... *sing* Für immer und ewig FC hansa Rostock!
bms
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 735

Win XP
Delphi 3, Delphi 6 PE, Delphi 2005 PE
BeitragVerfasst: Mi 28.04.04 15:43 
@ForzaFCH

Bevor du überhaupt weiter machst solltest du dir zuerst im klaren sein in welcher Form du die Daten gespeichert hast. Nicht einfach zwei Textdateien wo x und y für sich alleine rumliegen, sondern konkret sagen, daß es so ist. Ich hab dir ein Model vorgeschlagen:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
12;7 
24;13 
10;190 
5;12 
120;4


Hier hast du X und Y in einer Liste, getrennt durch Semikolon. Wenn du weiter mit einer Liste für X und einer anderen für Y machst, dann wundere dich nicht wenn du nicht das kriegst was du brauchst.

Also, entscheide dich zuerst für die Form wie deine Daten zu verfügung stehen.

Und noch was: StrToFloat ist falsch. Du brauchst Integer-Zahlen. Flat ist Real-Zahl. Du brauchst StrToInt.

_________________
VORSICHT: Ich behersche seit heute die Fünf-Finger-Handflächen-Herz-Explodier-Schlag-Kampf-Technik >:(
ForzaFCH Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 80


D6 / D7 Personal
BeitragVerfasst: Mi 28.04.04 15:59 
ich hab es wie schon gesagt. in 2 datein. will ich ja auch so. nur bei meienr berechung kommt halt auhc mal ein widerstand von 12,30 raus aber dann mekert er mich wenn er zeihcnen soll is kein gültiger integerwert :( bei den anderen zahlen geht es ja wie z.b 1 oder 120

_________________
HANSA ROSTOCK DU SOLLST STRAHLEN..... *sing* Für immer und ewig FC hansa Rostock!
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mi 28.04.04 16:00 
Dann musst Du wirklich StrToFloat nehmen und hinter runden (Round) oder die Nachkommastellen abschneiden (Trunc).

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Dieses Thema ist gesperrt, Du kannst keine Beiträge editieren oder beantworten.

Das Thema wurde von einem Team-Mitglied geschlossen. Wenn du mit der Schließung des Themas nicht einverstanden bist, kontaktiere bitte das Team.