Autor Beitrag
Phanuel
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 36

Win XP Pro, Mandrake linux 10.0

BeitragVerfasst: Mi 14.04.04 13:54 
gibt es eine mögllichkeit eine bestimme Zeile in einem Memo Feld in eine Edit komponente zu übertragen?
Also das zb die dritte Zeile der Memokomponente in edit1 wiedergegeben wird.

Kann ich auch in der Memo komponente am Anfang einer Zeile immer ein 1. bzw 2. usw setzen?

ausblenden Delphi-Quelltext
1:
2:
3:
4:
for i:= 1 to 10 do begin
memo1.Lines.Add(inttostr(i)); 

memo1.Lines.add(inttostr(random(50)+50)+'_'+inttostr((random(100)+100))+'_'+ inttostr((random(150)+150))+'_'+inttostr((random(200)+200))+'_'+ inttostr((random(250)+250)));


Er soll hier keine neue Zeile anfangen, sondern in der Zeile die bei memo1.Lines.Add(inttostr(i)); angefangen wurde einfach weitermachen.
und wie kriege ich es hin das er hierbei memo1.Lines.Add(inttostr(i)); ein i. macht? auf den punkt kommt es mir an!

Vielen Danke

Moderiert von user profile iconPeter Lustig: Delphi-Tags hinzugefügt
raziel
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2453

Arch Linux
JS (WebStorm), C#, C++/CLI, C++ (VS2013)
BeitragVerfasst: Mi 14.04.04 14:10 
zugriff auf einzelne zeilen in einem memo ist mit "Strings" möglich:
ausblenden Delphi-Quelltext
1:
Edit1.Text := Memo1.Lines.Strings[0];					

dabei ist auch schreiben möglich:
ausblenden Delphi-Quelltext
1:
Memo1.Lines.Strings[0] := '1. ' + Memo1.Lines.Strings[0];					


[edit]
das ganze ist - wie ich grad in der OH seh - auch ohne angabe von Strings möglich:
Edit1.Text := Memo1.Lines[0][/edit]

raziel

_________________
JSXGraph
Phanuel Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 36

Win XP Pro, Mandrake linux 10.0

BeitragVerfasst: Mi 14.04.04 14:16 
Vielen dank, das hast mit schon sehr geholfen.
Noch ne Frage ich hab jetzt nen String wie zb:
10.66_108_276_264_380

das steht innem edit fenster.
Jetzt will ich das er die 10. wegmacht und die _ auch, und das er die zahlen dann summiert.
Wie mach ich das?
raziel
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2453

Arch Linux
JS (WebStorm), C#, C++/CLI, C++ (VS2013)
BeitragVerfasst: Mi 14.04.04 14:36 
die zehn kriegste damit weg:
ausblenden Delphi-Quelltext
1:
2:
if pos('.', Str) > 0 then
   Delete(str, 1, pos('.', Str));

den rest zerlegste mit nem stringlist:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
var sl: TStringList;
    i, summe: Integer;
{...}
sl := TStringList.Create;
sl.Delimiter := '_';
sl.DelimiterText := str;
summe := 0;
for i := 0 to sl.Count-1 do
   summe := summe + StrToIntDef(sl[i], 0);
sl.Free;


habs jetz nich getestet, müsste aber funktionieren.

[edit]Free vergessen... :oops:[/edit]

raziel

_________________
JSXGraph
Phanuel Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 36

Win XP Pro, Mandrake linux 10.0

BeitragVerfasst: Mi 14.04.04 14:46 
Label1.Caption := edit1.text;


Könntest du mir noch bitte sagen wie ich das jetzt hier zb einbaue?
also edit1.text is 1.91_100_193_265_433
und label1.caption soll dann also 91 100 193 265 433
und später dann 1082 sein.

Aber wie?
raziel
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2453

Arch Linux
JS (WebStorm), C#, C++/CLI, C++ (VS2013)
BeitragVerfasst: Mi 14.04.04 15:10 
ausblenden Delphi-Quelltext
1:
2:
if pos('.', Str) > 0 then         // ist ein "." im String?
   Delete(str, 1, pos('.', Str));   // ja? -> Vom Anfang bis zum Punkt löschen!


macht aus "X.312_311_231_44_12" -> "312_311_231_44_12"
dabei kannst für "Str" alles an Strings einsetzen was de willst "Edit1.Text" oder "Label1.Caption" z.B.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
var sl: TStringList;
    i, summe: Integer;
{...}
sl := TStringList.Create;   // Stringlist erstellen;
sl.Delimiter := '_';    // Den "Begrenzer" festlegen (also das Trennzeichen)
sl.DelimiterText := str;   // Den String einlesen, der zerlegt werden soll
{...}    // hier kann man die werte verarbeiten
sl.Free;    // Stringlist wieder freigeben


zerlegt "312_311_231_44_12" in:
ausblenden Quelltext
1:
2:
3:
4:
5:
312
311
231
44
12


dabei kannst du wieder für Str jeden beliebigen String einsetzen!

ausblenden Delphi-Quelltext
1:
2:
3:
summe := 0;
for i := 0 to sl.Count-1 do
   summe := summe + StrToIntDef(sl[i], 0);

zählt nun die werte in der stringlist "sl" zusammen. das ergebnis kannst du mit
ausblenden Delphi-Quelltext
1:
label1.caption := inttostr(summe);					

über das label label1 ausgeben.


raziel

_________________
JSXGraph
Phanuel Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 36

Win XP Pro, Mandrake linux 10.0

BeitragVerfasst: Mi 14.04.04 15:22 
ich blick da voll nicht durch tut mir leid.
Könntest du dir das evtl mal angucken?:
home.arcor.de/phanuel/zufall.exe

und dann einfach ergänzen und mir zurückschicken.
Hab vielen dank.
raziel
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2453

Arch Linux
JS (WebStorm), C#, C++/CLI, C++ (VS2013)
BeitragVerfasst: Mi 14.04.04 16:20 
sorry, gegen exe-dateien bin ich äußerst allergisch, v.a. wenn ich nich weiß von wem die sind.
wo liegt denn das problem genau?

_________________
JSXGraph
Phanuel Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 36

Win XP Pro, Mandrake linux 10.0

BeitragVerfasst: Mi 14.04.04 17:15 
raziel
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2453

Arch Linux
JS (WebStorm), C#, C++/CLI, C++ (VS2013)
BeitragVerfasst: Mi 14.04.04 18:21 
sorry, nein!
dieses forum ist nicht dazu da, dass man sein problem fertig gelöst und implementiert auf einem silbertablett serviert bekommt, sondern um denkanstöße und tips zu bekommen, wie man sein problem selbst löst.
beschreib dein problem ein bisschen genauer! was genau verstehst am obigen source code nicht?


raziel

_________________
JSXGraph
Phanuel Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 36

Win XP Pro, Mandrake linux 10.0

BeitragVerfasst: Mi 14.04.04 20:05 
Ich weiss einfach nicht wie ich das einbinden soll.
tut mir leid, so die grosse ahnung von delphi habe ich auch nicht.
bin eher ein jüngling mit meinen 17 jahren, ich kenne diese befehle nicht, und weiss nicht wie ich sie in den quelltext implentieren soll.
So das aus meinem wert im edit feld, der entsprechende wert im label feld ausgegeben wird.
raziel
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2453

Arch Linux
JS (WebStorm), C#, C++/CLI, C++ (VS2013)
BeitragVerfasst: Do 15.04.04 12:40 
ok, also du kannst verschiedene werte den einzelnen eigenschaften von objekten oder variablen zuweisen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
var str: String;
begin
   str := Edit1.Text;
end;

nun kannst du die variable "Str" bearbeiten (s.o.) und anschließend der Eigenschaft "Caption" von "Label1" zuweisen:
ausblenden Delphi-Quelltext
1:
Label1.Caption := Str					

Einbinden kannste das ganze z.B. so:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
procedure TForm1.Button1Click(Sender: TObject);
var Str: String;
    sl: TStringLisT;
    i, Summe: Integer;
begin
   sl := TStringList.Create;
   Str := Edit1.Text;   // Str = Edit1.Text
   if pos('.', Str) > 0 then         // ist ein "." im String?
      Delete(str, 1, pos('.', Str));   // ja? -> Vom Anfang bis zum Punkt löschen!

   sl.Delimiter := '_';    // Den "Begrenzer" festlegen (also das Trennzeichen)
   sl.DelimiterText := str;   // Den String einlesen, der zerlegt werden soll 

   summe := 0;     // Summe initialisieren
   for i := 0 to sl.Count-1 do      // hier werden jetzt alle Zahlen zusammengezählt
      summe := summe + StrToIntDef(sl[i], 0);    // und in summe "zusammengefasst"

   Label1.Caption := IntToStr(summe);  // In Label1 die Summe der Zahlen ausgeben

   sl.Free;
end;


jetz besser?

raziel

_________________
JSXGraph
Phanuel Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 36

Win XP Pro, Mandrake linux 10.0

BeitragVerfasst: Do 15.04.04 13:24 
Vielen dank
das hat mir sehr geholfen