Entwickler-Ecke
Sonstiges (Delphi) - Zeilenumbrüche
Tinky - Fr 10.02.06 17:39
Titel: Zeilenumbrüche
Hallo,
ich versuche schon seit ein paar Tagen vergeblich meinem Programm beizubringen, dass wenn er auf ein bestimmtes Zeichen (oder einen bestimmten String) in einem String stößt, es dann einen Zeilenumbruch einfügen soll.
Bsp:
Man hat als Eingangsstring z.B so etwas:
writeln; b; k; w;
nun soll das programm wenn es an das Zeichzen ';' stößt einen Zeilenumbruch machen.
Am Ende sollte es ungefähr so aussehen:
writeln;
b;
k;
w;
Dabei sollte jede neu entstandene Zeile ihren eigenen Index in einem Array bekommen.
Vielen Dank für die Hilfe :)
Grüße Tinky
Spaceguide - Fr 10.02.06 17:58
Probier's mal hiermit, ergab Suche mit Google nach 5sek:
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: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100:
|
unit SplitFns; interface uses Classes;
function GetNextToken (Const S: string; Separator: char; var StartPos: integer): String;
procedure Split (const S: String; Separator: Char; MyStringList: TStringList);
function AddToken (const aToken, S: String; Separator: Char; StringLimit: integer): String;
implementation Uses Sysutils;
function GetNextToken (Const S: string; Separator: char; var StartPos: integer): String; var Index: integer; begin Result := '';
While (S[StartPos] = Separator) and (StartPos <= length(S))do StartPos := StartPos + 1;
if StartPos > length(S) then Exit;
Index := StartPos;
While (S[Index] <> Separator) and (Index <= length(S))do Index := Index + 1;
Result := Copy(S, StartPos, Index - StartPos);
StartPos := Index + 1; end;
procedure Split (const S: String; Separator: Char; MyStringList: TStringList); var Start: integer; begin Start := 1; While Start <= Length(S) do MyStringList.Add (GetNextToken(S, Separator, Start)); end;
function AddToken (const aToken, S: String; Separator: Char; StringLimit: integer): String; begin if Length(aToken) + Length(S) < StringLimit then begin if S = '' then Result := '' else Result := S + Separator;
Result := Result + aToken; end else Raise Exception.Create('Cannot add token'); end;
end. |
Grishnak - Fr 10.02.06 18:27
btw. sehr aussagekräftiger Thread-Titel!
Tino - Fr 10.02.06 19:25
Hallo,
bitte ändere den Titel des Topics, da er wenig über das eigentlich Thema verrät. Hier der entsprechende Absatz aus den
Richtlinien [
http://www.entwickler-ecke.de/richtlinien.html]:
1.2 Beiträge: |
Bitte formuliere den Betreff Deiner Beiträge so, dass andere Mitglieder anhand dieser bereits das eigentliche Thema festmachen können. Beiträge wie etwa "Eine Anfängerfrage" oder "Weiß jemand, wie das geht?" lassen den Leser im Unklaren darüber, was das Thema der Diskussion ist.[...] |
Einfach oben bei Deinem ersten Beitrag auf

klicken und den Titel ändern. Dank Dir!
Viele Grüße,
Tino
Tinky - Sa 11.02.06 14:09
Danke für die Unit, werde die ausprobieren :)
@Admin Habe den Titel des Themas geändert:)
Tinky - Sa 11.02.06 14:32
Hallo,
ich komm irgendwie mit dem Parameter (MyStringList: TStringList) der procedure split; nicht klar,
Kann mir jemand erklären wie ich eine Solche String-Liste anlege und dann die einzelnen Zeilen davon auslesen kann?
Grüße
Tinky
BenBE - Sa 11.02.06 14:39
Wozu so umständlich???
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| procedure SplitBySemicolon(S: String): TStrings; begin Result := TStringList.Create; try Result.Text := StringReplace(S, ';', ';'#13#10, [rfReplaceAll]); except FreeAndNil(Result); end; end; |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!