AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

String alle X Zeichen splitten

Offene Frage von "gangs-taas"
Ein Thema von gangs-taas · begonnen am 28. Mär 2009 · letzter Beitrag vom 3. Apr 2009
Antwort Antwort
Seite 1 von 2  1 2   
gangs-taas

Registriert seit: 24. Mär 2009
364 Beiträge
 
#1

String alle X Zeichen splitten

  Alt 28. Mär 2009, 20:27
hey,
zualler erst mal Hallo, ich bin neu in diesem forum und programmiere seit gut 1/2 jahren in delphi (wegen dem informatik untericht in der schule)

ich kann leider noch nciht so viel und habe jetzt eine Frage bezüglich von Strings.

ich möchte den String aus einem MemoFeld alle X(also ne Variable) Zeichen trennen.

ich habe durch die suche imemr nur das trennen an bestimmten Zeichen gefunden und frag deswegen noch einmal.

ichh offe ihr könnt mir helfen.

Danke schonmal

ps. ich wusste einfach nicht in welches unterforum meine frage gehört *sorry*
  Mit Zitat antworten Zitat
Panthrax

Registriert seit: 18. Feb 2005
286 Beiträge
 
Delphi 2010 Enterprise
 
#2

Re: String alle X Zeichen splitten

  Alt 28. Mär 2009, 20:33
Willkommen!

Idee: Du könntest das "Trennen an einer bestimmten Stelle" doch wiederholen.

Andere Idee: Multipliziere die Variable, um die Trennstellen zu erhalten, und nimm ab dort die nächsten X Zeichen.

Die Routine Copy könnte Dir helfen.
"Es gibt keine schlimmere Lüge als die Wahrheit, die von denen, die sie hören, missverstanden wird."
  Mit Zitat antworten Zitat
gangs-taas

Registriert seit: 24. Mär 2009
364 Beiträge
 
#3

Re: String alle X Zeichen splitten

  Alt 28. Mär 2009, 21:56
hey,
daNKE erstmal für die antwort
könntest du mir genauer sagen wie du das meisnt ?
ich versteh es nämlich immernoch nicht ^^
lg ^^
  Mit Zitat antworten Zitat
Panthrax

Registriert seit: 18. Feb 2005
286 Beiträge
 
Delphi 2010 Enterprise
 
#4

Re: String alle X Zeichen splitten

  Alt 28. Mär 2009, 22:24
Ein Ansatz, im Blindflug getippt:
Delphi-Quellcode:
program Demo;

{$AppType Console}

uses
  SysUtils, Classes;

type
  EOutOfBounds = class(Exception);

function SplitStr(var Str: String; const X: Integer): String;
begin
  if (X < 1) or (X > Length(Str)) then
    raise EOutOfBounds.CreateFmt('SplitStr: X nicht in [%d..%d].',[1,Length(Str)]);
  Result:=Copy(Str,1,X);
  Str:=Copy(Str,X+1,Length(Str)-X);
end;

procedure SplitStrAll(Str: String; const X: Integer; const StringList: TStringList);
begin
  StringList.Clear;
  while Length(Str) > X do
    StringList.Add(SplitStr(Str,X));
  if Lengh(Str) > 0 then
    StringList.Add(Str);
end;

procedure WriteStringList(const StringList: TStringList);
var
  Index: Integer;
begin
  with StringList do
    for Index:= 0 to Count-1 do
      WriteLn(Items[Index]);
end;

var
  Str: String;
  StringList: TStringList;
begin
  Str:='0123456789';
  StringList:=TStringList.Create;
  try
    SplitStrAll(Str,3,StringList):
    WriteStringList(StringList);
  finally
    StringList.Free;
  end;
  WriteLn('Enter drücken...');
  ReadLn;
end.
Eventuell sind noch einige Tippfehler drin...

Viel Spaß beim Lernen!
"Es gibt keine schlimmere Lüge als die Wahrheit, die von denen, die sie hören, missverstanden wird."
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke
Online

Registriert seit: 10. Jun 2003
Ort: Berlin
9.288 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: String alle X Zeichen splitten

  Alt 28. Mär 2009, 22:34
Ein Blick in die Library erspart oft einige Tipparbeit...
http://www.delphipraxis.net/internal...t.php?p=186130
http://www.delphipraxis.net/internal...t.php?p=484581
http://www.delphipraxis.net/internal...ct.php?p=27344
3 fertige Lösungen...
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Panthrax

Registriert seit: 18. Feb 2005
286 Beiträge
 
Delphi 2010 Enterprise
 
#6

Re: String alle X Zeichen splitten

  Alt 28. Mär 2009, 23:13
Hm, irgendwie machen diese drei Lösungen etwas anderes...

Und im wesentlichen kommt es doch nur auf das Teilen und die Wiederholung an:
Delphi-Quellcode:
// Teilen, SplitStr
  Result:=Copy(Str,1,X);
  Str:=Copy(Str,X+1,Length(Str)-X);
// Wiederholung, SplitStrAll
  while Length(Str) > X do
  { ... }
Jetzt hab ich's ja doch verraten... Naja, der Umbau gehört ja dann doch zur Demonstration dazu...
"Es gibt keine schlimmere Lüge als die Wahrheit, die von denen, die sie hören, missverstanden wird."
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke
Online

Registriert seit: 10. Jun 2003
Ort: Berlin
9.288 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: String alle X Zeichen splitten

  Alt 28. Mär 2009, 23:44
Ups, ich sollte schlafen gehen, ich hab das nicht richtig verstanden, Sorry.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
29. Mär 2009, 07:43
Dieses Thema wurde von "Sharky" von "Datenbanken" nach "Sonstige Fragen zu Delphi" verschoben.
Könnte auch nach Object-Pascal. Aber in keinem Fall in die Datenbanksparte
gangs-taas

Registriert seit: 24. Mär 2009
364 Beiträge
 
#9

Re: String alle X Zeichen splitten

  Alt 29. Mär 2009, 08:58
hey
erstaml vielen dank für die verschiebung und die schnelle hilft.

ich bin wohl doch noch viel zu schlecht für sowas -.-

also ich wollte den Text eines Memo-Feldes verschleiern.

d.h. ich wollte 'A' durch z.b. 4 Zahlen ersetzten.

nun müsste ich das hinterher aber auch wieder rückgängig machen könen ...
und das schaff ich nicht ....


ich danke ich bin vllt doch noch zu schlecht für sowas und würde mich über eine hilfe sehr freuen, ansonsten lernen ich lieber erst noch merh ....

lg^^
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#10

Re: String alle X Zeichen splitten

  Alt 29. Mär 2009, 12:30
Moin,

das was du vorhast, geht auch einfacher! Wie ersetzt du denn das A durch die 4 Zahlen? Dazu muss es ja irgendwie eine Zuordnungstabelle als
A <-> 1234
B <-> 2567
oder was auch immer geben. Dann kannst du auf deinen String ein simples StringReplace(str, 'A', '1234', [rfReplaceAll]) anwenden, um den Text zu "verschlüsseln".

Nun, um ihn wieder zu entschlüsseln... machst du halt genau das Umgekehrte, nämlich StringReplace(str, '1234', 'A', [rfReplaceAll]). Und schwupp hast du wieder das Original

http://www.delphibasics.co.uk/RTL.as...=StringReplace
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 20:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz