Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Arbeiten mit "Spintax" (https://www.delphipraxis.net/160158-arbeiten-mit-spintax.html)

-187- 30. Apr 2011 01:44

Arbeiten mit "Spintax"
 
Moin :)

Ein Kunde fragt mich heute ob ich eine "Spintax Funktion" einbauen könnte :?::!:
Nach kurzer Recherche weiss ich wenigstens worum es geht :) Das Projekt das ich für den Kunden erstellt habe ist ein Artikel Verwaltungssystem.

Hat schonmal jemand mit Spintax o.ä gearbeitet?

Hier noch ein Bsp. welches ich von hier kopiert habe:

Code:
Let’s say I have the following sentence in spintax format:

Article directories are {an important {element|component|aspect} of SEO|useful for {getting|gaining} backlinks}.

In the example above, the first level spintax is in blue and the 2nd level is in green. So some examples of the output this example would produce is:

Article directories are an important aspect of SEO.

Article directories are useful for getting backlinks.

Article directories are an important element of SEO.

Namenloser 30. Apr 2011 03:31

AW: Arbeiten mit "Spintax"
 
Liste der Anhänge anzeigen (Anzahl: 1)
Heute ist dein Glückstag :-D
Rein zufällig habe ich fast genau sowas für die erste Runde des BWINF 2010 geschrieben. Wusste gar nicht, dass das einen Namen hat. Einziger Unterschied bei meinem Format ist, dass ich runde statt geschweifter Klammern verwende, aber das sollte sich ja leicht anpassen lassen.

//Edit: Eins muss ich aber noch sagen: Von dieser unseriösen Art der Suchmaschinenoptimierung halte ich rein gar nicht (falls es dafür sein soll).

-187- 30. Apr 2011 10:04

AW: Arbeiten mit "Spintax"
 
Hi ! Jap, das könnte passen :) Welch Zufall!

Suchmaschinenoptimierung? Die Artikelverwaltung ist für eine Schülerzeitungs Redaktion die ihre eigenen Artikel "spinnen" will. Daher wohl der Name "Spintax" :)

Cheers!

ASM 30. Apr 2011 12:02

AW: Arbeiten mit "Spintax"
 
Der Quellcode der Unit ist zwar am Ende der Dokumentation (in der PDF) vorhanden, und er ist vor allem auch außerhalb der bezeichneten Verwendung nicht uninteressant.

Nur leider fehlt dabei die Implementierung sämtlicher Methoden zur Klasse TClauseList.
@NamenLozer: Ist das beabsichtigt oder könntest Du diese fehlende Implementierung vielleicht doch noch nachreichen ?

-187- 30. Apr 2011 12:38

AW: Arbeiten mit "Spintax"
 
Schön wäre auch die .pas als attached Datei :)

Namenloser 30. Apr 2011 20:47

AW: Arbeiten mit "Spintax"
 
Zitat:

Zitat von ASM (Beitrag 1097839)
Der Quellcode der Unit ist zwar am Ende der Dokumentation (in der PDF) vorhanden, und er ist vor allem auch außerhalb der bezeichneten Verwendung nicht uninteressant.

Nur leider fehlt dabei die Implementierung sämtlicher Methoden zur Klasse TClauseList.
@NamenLozer: Ist das beabsichtigt oder könntest Du diese fehlende Implementierung vielleicht doch noch nachreichen ?

TClauseList ist eine ganz einfache typensichere TObjectlist, unter neueren Delphis könnte man auch einfach eine generische TList<> nehmen. Ich habe sie nicht mit in die Dokumentation gepackt, da man Teile, die für die Lösung nicht direkt von Bedeutung sind, möglichst weglassen sollte, und der Quellcode auch so schon recht lang war.
Delphi-Quellcode:
{ TClauseList }

function TClauseList.Add(AObject: TClause): Integer;
begin
  Result := inherited Add(AObject);
end;

function TClauseList.Extract(Item: TClause): TClause;
begin
  Result := TClause(inherited Extract(Item));
end;

function TClauseList.First: TClause;
begin
  Result := TClause(inherited First);
end;

function TClauseList.GetItem(Index: Integer): TClause;
begin
  Result := TClause(inherited GetItem(Index));
end;

function TClauseList.IndexOf(AObject: TClause): Integer;
begin
  Result := inherited IndexOf(AObject);
end;

procedure TClauseList.Insert(Index: Integer; AObject: TClause);
begin
  inherited Insert(Index, AObject);
end;

function TClauseList.Last: TClause;
begin
  Result := TClause(inherited Last);
end;

function TClauseList.Remove(AObject: TClause): Integer;
begin
  Result := inherited Remove(AObject);
end;

procedure TClauseList.SetItem(Index: Integer; AObject: TClause);
begin
  inherited SetItem(Index, AObject);
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:43 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