AGB  ·  Datenschutz  ·  Impressum  







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

zeilenzugriff im memo

Offene Frage von "Bandobras"
Ein Thema von Bandobras · begonnen am 28. Jun 2005 · letzter Beitrag vom 7. Jul 2005
Antwort Antwort
Seite 1 von 2  1 2      
Bandobras

Registriert seit: 21. Dez 2004
12 Beiträge
 
Delphi 7 Professional
 
#1

zeilenzugriff im memo

  Alt 28. Jun 2005, 19:24
hi,
ich hab folgendes vor:
In ein memo wird vom benutzer ein text eingefügt. nach nem klick auf nen button wird der text nach Signalwörtern durchsucht, die im text stehen. In jeder zeile steht ein anderes Signalwort. Nun soll immer eine bestimmte Zeile, die das entsprechende wort enthält in eine variable kopiert und weiterverarbeitet werden.
jetzt meine frage: Wie kann ich diese Zeile kopieren??

Falls ihr euch fragt wozu ich das brauche:
Ich spiel ein Rollenspiel in dem die Fertigkeiten die man erlangt vom Gildenchef beurteilt werden. zum Beispiel:
"Anvar sagt: Windstoss beherrscht du meisterhaft". Es gibt 18 verschiedene Beurteilungen, und meisterhaft ist die 15. beste.
Nun hab ich diese Beurteilungen "graphisch" dargestellt. z.b: Windstoss[###############...]
Bei über 30 fertigkeiten fehlt mir aber die lust, jedes mal alles durchzuschaun und zu aktualisieren, deshalb will ich das prog schreiben ;P
Die ausgabe, wie gut man eine fertigkeit beherrscht erfolgt immer gebündelt, das heisst, man bekommt immer alle fertigkeiten auf einmal gesagt - in jeder zeile eine. Und nun wollte ich, dass das programm die zeilen findet und die beurteilung in # umwandelt.
Wer jetzt denkt, dass ich zu viel zeit habe, der hat sicherlich recht.
ich hoffe mal dass das nicht zu kompliziert war und ich ein paar gute antworten bekomme.

mfg
Bandobras
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: zeilenzugriff im memo

  Alt 28. Jun 2005, 19:28
Moin Bandobras,

also was mir dazu auf Anhieb einfällt:
Gehe in einer Schleife durch die Zeilen des Memos, und suche dann darin, z.B. mit pos, nach den möglichen Schlüsselworten.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Bandobras

Registriert seit: 21. Dez 2004
12 Beiträge
 
Delphi 7 Professional
 
#3

Re: zeilenzugriff im memo

  Alt 28. Jun 2005, 19:30
danke christian.
darüber hatte ich anfangs auch nachgedacht, aber da hat sich mir das problem aufgetan, dass ich nicht weiss, wie ich die beurteilung der fertigkeit zuordnen soll.
  Mit Zitat antworten Zitat
Benutzerbild von gordon freeman
gordon freeman

Registriert seit: 28. Jun 2003
Ort: Gelsenkirchen
337 Beiträge
 
Delphi 2005 Personal
 
#4

Re: zeilenzugriff im memo

  Alt 28. Jun 2005, 20:50
Erst eine For-Schleife, in der du nach den Schlüsselwörtern suchst.
Danach eine Case-Of Schleife, die feststellt, um welches Schlüsselwort es sich handelt und die dementsprechend das SChlüsselwort umwandelt.

mfg, gordon

Delphi-Quellcode:
case Bewertung of
  'sehr schlecht': Bewertung := '[]';
  'schlecht'     : Bewertung := '[#]';
//etc....
  end;
  Mit Zitat antworten Zitat
Bandobras

Registriert seit: 21. Dez 2004
12 Beiträge
 
Delphi 7 Professional
 
#5

Re: zeilenzugriff im memo

  Alt 28. Jun 2005, 23:30
ich glaube, ich hab mich zu kompliziert ausgedrückt, aber es nicht so einfach das kurz zu erklären
das schlüsselwort ist für mich die jeweilige fertigkeit, nicht die beurteilung. die fertigkeit und die beurteilung stehen aber in der selben zeile. Mein problem ist, jedem schlüsselwort -also jeder fertigkeit- die entsprechende beurteilung zuzuordnen.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: zeilenzugriff im memo

  Alt 29. Jun 2005, 02:26
Moin Bandobras,

poste doch bitte mal einen Beispielinhalt des Memos.
So richtig verstanden habe ich das ganze jetzt nämlich nicht.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Bandobras

Registriert seit: 21. Dez 2004
12 Beiträge
 
Delphi 7 Professional
 
#7

Re: zeilenzugriff im memo

  Alt 29. Jun 2005, 12:58
ok. so sieht das, was ich ins memo kopiere aus:

Anvar sagt: Behandle beherrschst Du absolut perfekt.
Anvar sagt: Beherrschung beherrschst Du ausgezeichnet.
Anvar sagt: Eiselementar beherrschst Du unglaublich gut.
Anvar sagt: Eispfeil beherrschst Du phantastisch gut.
Anvar sagt: Elementarhand beherrschst Du exzellent.
Anvar sagt: Elementarpanzer beherrschst Du meisterhaft.
Anvar sagt: Erdbeben beherrschst Du ueberdurchschnittlich.
Anvar sagt: Erkenne beherrschst Du absolut perfekt.
Anvar sagt: Erzelementar beherrschst Du unglaublich gut.
Anvar sagt: Erzpfeil beherrschst Du absolut perfekt.
Anvar sagt: Erzstrahl beherrschst Du wirklich gut.
Anvar sagt: Feuerball beherrschst Du hervorragend.
Anvar sagt: Feuerpfeil beherrschst Du phantastisch gut.
Anvar sagt: Feuerwusel beherrschst Du ausgezeichnet.
Anvar sagt: Froststrahl beherrschst Du ausgezeichnet.
Anvar sagt: Hagelschlag beherrschst Du ueberdurchschnittlich.
Anvar sagt: Humuselementar beherrschst Du phantastisch gut.
Anvar sagt: Laehme beherrschst Du ausgezeichnet.
Anvar sagt: Luftelementar beherrschst Du absolut perfekt.
Anvar sagt: Luftpfeil beherrschst Du absolut perfekt.
Anvar sagt: Schaetz beherrschst Du exzellent.
Anvar sagt: Sturmflut beherrschst Du ueberdurchschnittlich.
Anvar sagt: Wasserelementar beherrschst Du wirklich gut.
Anvar sagt: Wasserpfeil beherrschst Du ausgezeichnet.
Anvar sagt: Wasserstrahl beherrschst Du hervorragend.
Anvar sagt: Windhose beherrschst Du ausgezeichnet.
Anvar sagt: Windstoss beherrschst Du absolut perfekt.
Anvar sagt: Die Fertigkeit Zaubern beherrschst Du phantastisch gut.
Anvar sagt: Den waffenlosen Kampf beherrschst Du perfekt.
Anvar sagt: Insgesamt betrachtet bist Du phantastisch gut.

und so sieht das aus, was entstehen soll:



Windstoss......[##################]
Erzstrahl......[#######...........]
Wasserstrahl...[############......]
Froststrahl....[###########.......]
Feuerball......[############......]
Laehme.........[###########.......]

mein problem ist halt, dass ich nicht weiss, wie ich delphi sage, dass er zu jedem schlüsselwort die beurteilung finden soll.
also zu "behandle" gehört "absolut perfekt" und zu "windhose" gehört "ausgezeichnet...Das umwandeln der beurteilung in # ist nicht das problem
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#8

Re: zeilenzugriff im memo

  Alt 29. Jun 2005, 13:05
Hi,

ich könnte mir das so vorstellen:

Erstmal bis zum Doppelpunkt + eine Stelle alles löschen. Danach alles bis zum nächsten Leerzeichen löschen. Danach alles löschen bis nach "Du" und der Rest ist die Bewertung.

(Werde vllt. nachher nen Q&D-Source posten)
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#9

Re: zeilenzugriff im memo

  Alt 29. Jun 2005, 13:18
Oder so:

Delphi-Quellcode:
uses
  Classes,
  SysUtils;

function After(S, Pattern: String): String;
var
  I: Integer;
begin
  I := Pos(Pattern,S);
  if I = 0
    then Result := ''
    else Result := Copy(S, I + Length(Pattern), Length(S));
end;

function Before(S, Pattern: String): String;
var
  I: Integer;
begin
  I := Pos(Pattern,S);
  Delete(S, I, Length(S));
  Result := S;
end;

function Between(S, Prefix, Suffix: String): String;
begin
  Result := Before(After(S, Prefix), Suffix);
end;

procedure TextToGraphic(slSrc, slTgt, slGrade: TStringList);
const
  pfx1 = 'Anvar sagt: ';
  sfx1 = ' ';
  pfx2 = 'beherrschst Du ';
  sfx2 = '.';
var
  sAbility, sGrade: string;
  i, iGrade: integer;
begin
  slTgt.Clear;
  for i := 0 to slSrc.Count - 1 do begin
    sAbility := Between(slSrc[i], pfx1, sfx1);
    sGrade := Between(slSrc[i], pfx2, sfx2);
    iGrade := Succ(slGrade.IndexOf(sGrade));
    slTgt.Values[sAbility] := StringOfChar('#', iGrade);
  end;
end;

function CreateGrades: TStringList;
begin
  Result := TStringList.Create;
  // schlechtesten Rang zuerst hinzufügen
  Result.Add('absolut perfekt');
end;
Grüße vom marabu
  Mit Zitat antworten Zitat
Bandobras

Registriert seit: 21. Dez 2004
12 Beiträge
 
Delphi 7 Professional
 
#10

Re: zeilenzugriff im memo

  Alt 29. Jun 2005, 22:38
hmm...irgendwie versteh ich den code nicht. was ist sAbility oder pfx1 oder sfx2...könntest du das bitte etwas auskommentieren?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 12:34 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