Autor Beitrag
Jethacker
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 19.12.05 16:57 
Erstens: ja ich habe Suche benutzt das schon seit 3 Tagen und habe auch schon ne menge gefunden bin aber nie durchgestiegen!!!

Daher wollte ich mal fragen ob doch jemand so gütig wäre mir zu helfen???


ZU meinem Problem

Ich habe eine stringgrid, dort soll der nutzer eine eingabe tätigen das würde so aussehen

12:13
oder
1:14
oder
14:2

mehr als 2 ställige zahlen sind nicht möglich!

diese werte lasse ich dann mittels array in einem string speichern nennen wir das mal

ergebnis

nun muss ich aber um später zu errechnen wär am meisten punkte hatte den string teilen, wie ihr euch das sicherlich schon denkt direkt beim ":".

Damit in erg1 := 12
und in erg2:= 13
steht, gemäß nach beispiel eins.

die hilfe in delphi hat mich auch schon weiter gebracht aber nur so weit das ich zahlen durch andere zahlen ersetzen kann und das bringt mir ja nichts...
und verweist mich jetzt bitte nicht hier hin:
www.delphi-library.d...;highlight=zerteilen

da hab ich nur bahnhof verstanden und ich hab den user auch schon angeschrieben bekomme aber keine antwort.....
also bitte ich euch mir doch zu helfen, dies ist schließlich ein delphi-forum und kein "bitte,bitte verweist mich, denn ich bin zu dumm zu suchen Fourm"

THX
schonmal an alle die sich doch bereiterklärt haben mir zu helfen...
Danniolo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 693



BeitragVerfasst: Mo 19.12.05 17:23 
Für einen Vokabeltrainer brauchte ich auch mal so eine Funktion, nach ein paar ist das dabei herausgekommen:
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:
function CommaTxt(PromtString, Splitter: String): TStrings;
var ix, ix2: Integer;
    TempStringList: TStringList;
    CommaTxtX: String;
Begin
  TempStringList := TStringList.Create;
  TempStringList.Clear;
  TempStringList.Add('');
  For ix := 1 To length(PromtString) Do
  Begin
    if PromtString[ix] = Splitter Then
    begin
      CommaTxtX := '';
      if PromtString[ix + 1] = ' ' Then ix2 := ix + 1 Else ix2 := ix;
      while ix2 < length(PromtString) Do
      Begin
        Inc(ix2);
        if PromtString[ix2] <> splitter Then
          CommaTxtX := CommaTxtX + PromtString[ix2]
        Else
          ix2 := length(PromtString);
      End;
      TempStringList.Add(CommaTxtX);
    End Else
    Begin
      CommaTxtX := '';
      ix2 := 0;
      while ix2 < length(PromtString) Do
      Begin
        Inc(ix2);
        if PromtString[ix2] <> Splitter Then
          CommaTxtX := CommaTxtX + PromtString[ix2]
        Else
          ix2 := length(PromtString);
      End;
      TempStringList[0] := (CommaTxtX);
    End;
  End;
  Result := TempStringList;
End;


Ein Besipielaufruf würde so aussehen:
ausblenden Delphi-Quelltext
1:
CommaTxt('94:58',':');					

Die Parameter bedeuten dabei dies:
PromtString = der String, der getrennt werden soll
Splitter = das Zeichen, ab dem der String getrennt werden soll
Das Ergebnis:
ausblenden Quelltext
1:
2:
94
58


Diese Funktion funktioniert für beliebig lange Strings, mit beliebig vielen Trennungen, die Ergebnisse sind in einer StringList abgespeichert.
Jethacker
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 19.12.05 18:19 
danke für die Antwort hat mir echt weitergeholfen.
Aber eine Sache interessiert mich dann doch noch:

wie kann ich jetzt die daten wieder ausgeben lassen

ich möchte das per forschleife hier ausgeben lassen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
for i := 1 to form2.spiele_3 do
begin
stringgrid1.cells[4,i] := // hier soll der erste teil (sprich vor dem ":") ausgegeben werden;
stringgrid1.cells[5,i] := // hier soll der zweite teil (sprich nach dem ":") ausgegeben werden;
end;

wenn du mir das noch sagen könntest wäre das echt nett.

Moderiert von user profile iconGausi: Delphi-Tags hinzugefügt.
Danniolo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 693



BeitragVerfasst: Mo 19.12.05 18:47 
Kein Problem:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
for i := 1 to form2.spiele_3 do
begin
  try stringgrid1.cells[4,i] := CommaTxt('94:58',':')[0]; except end;
  try stringgrid1.cells[5,i] := CommaTxt('94:58',':')[1];  except end;
end;


Zur Erklärung: '94:58' ist dein Ergebnis, das musst du dann noch ändern.
Da als Result der Function eine StringList ausgegeben wird kann man die einzelnen Inhalte (vor und nach dem Trennzeichen) über [0] oder [1] abgerufen werden.
Jethacker
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 19.12.05 19:19 
Danke du hast mir sehr geholfen nun kann ich endlich weiterarbeiten....

So muss das hier sein Top Member!!!

Bei weiteren fragen punkto teilen schreib ich dich per PM an ok?