AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zeichen aus einem String filtern/löschen

Ein Thema von Blubbel · begonnen am 29. Nov 2011 · letzter Beitrag vom 2. Dez 2011
 
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#21

AW: Zeichen aus einem String filtern/löschen

  Alt 30. Nov 2011, 13:48
Was für ein Buffer?

Delphi-Quellcode:
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

const
  LINE = '[TimeStamp]:<Indent1><Indent2>LogMessage';

function ExtractTimeStamp(LogLine: string): string;
var
  Start, Stop: Integer;
begin
  Start := Pos('[', LogLine);
  Stop := Pos(']', LogLine);
  Result := Copy(LogLine, Start + 1, Stop - Start - 1);
end;

function ExtractIndent1(LogLine: string): string;
var
  Start, Stop: Integer;
begin
  Start := Pos('<', LogLine);
  Stop := Pos('>', LogLine);
  Result := Copy(LogLine, Start + 1, Stop - Start - 1);
end;

function ExtractIndent2(LogLine: string): string;
var
  Start, Stop: Integer;
  Start2, Stop2: Integer;
begin
  Start := Pos('<', LogLine);
  Start2 := PosEx('<', LogLine, Start + 1); // +1, sonst findet er das erste Zeichen wieder
  Stop := Pos('>', LogLine);
  Stop2 := PosEx('>', LogLine, Stop + 1);
  Result := Copy(LogLine, Start2 + 1, Stop2 - Start2 -1);
end;

function ExtractLogMsg(LogLine: string): string;
var
  Start, Start2: Integer;
begin
  Start := Pos('>', LogLine);
  Start2 := PosEx('>', LogLine, Start + 1); // +1, sonst findet er das erste Zeichen wieder
  Result := Copy(LogLine, Start2 + 1, Length(LogLine) - Start2);
end;

procedure SplitLogLine(LogLine: string; out TimeStamp: string; out Indent1: string; out Indent2: string; out LogMsg: string);
begin
  TimeStamp := ExtractTimeStamp(LogLine);
  Indent1 := ExtractIndent1(LogLine);
  Indent2 := ExtractIndent2(LogLine);
  LogMsg := ExtractLogMsg(LogLine);
end;

var
  TimeStamp: string;
  Indent1: string;
  Indent2: string;
  LogMsg: string;

begin
  SplitLogLine(LINE, TimeStamp, Indent1, Indent2, LogMsg);
  Writeln(TimeStamp);
  Writeln(Indent1);
  Writeln(Indent2);
  Writeln(LogMsg);
  Readln;
end.
(Dauer 10 Minuten, inklusive starten der IDE und suchen nach einer PosEx Funktion hier im Forum.)

Die Fallunterscheidung überlasse ich dir.
Michael
Ein Teil meines Codes würde euch verunsichern.

Geändert von Luckie (30. Nov 2011 um 13:53 Uhr)
  Mit Zitat antworten Zitat
 


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