Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Problem mit POS und COPY (https://www.delphipraxis.net/23070-problem-mit-pos-und-copy.html)

Trax 29. Mai 2004 10:20

Re: Problem mit POS und COPY
 
Danke für die schnelle antwort
Hab das grad schnell probiert und bekomme

[Error] Unit1.pas(57): Undeclared identifier: 'posEx'

:(

Matze 29. Mai 2004 10:22

Re: Problem mit POS und COPY
 
Delphi-Quellcode:
uses StrUtils
nicht vergessen ;)

Trax 29. Mai 2004 10:25

Re: Problem mit POS und COPY
 
in meiner unit habe ich folgende uses

Delphi-Quellcode:
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, StrUtils;

kann es sein das es PosEx nicht in delphi 6 personal gibt? deswegen auch nichts in der hilfe? :?

SirThornberry 29. Mai 2004 10:28

Re: Problem mit POS und COPY
 
Stimmt, hab grad geschaut, in meinem D6 personal gibts die funktion auch nicht. Hab sie mal aus D7 rauskopiert
Delphi-Quellcode:
function PosEx(const SubStr, S: string; Offset: Cardinal = 1): Integer;
var
  I,X: Integer;
  Len, LenSubStr: Integer;
begin
  if Offset = 1 then
    Result := Pos(SubStr, S)
  else
  begin
    I := Offset;
    LenSubStr := Length(SubStr);
    Len := Length(S) - LenSubStr + 1;
    while I <= Len do
    begin
      if S[I] = SubStr[1] then
      begin
        X := 1;
        while (X < LenSubStr) and (S[I + X] = SubStr[X + 1]) do
          Inc(X);
        if (X = LenSubStr) then
        begin
          Result := I;
          exit;
        end;
      end;
      Inc(I);
    end;
    Result := 0;
  end;
end;

Trax 29. Mai 2004 10:48

Re: Problem mit POS und COPY
 
danke
ich werd mal ein bischen damit rumbasteln... ;)

Trax 29. Mai 2004 14:44

Re: Problem mit POS und COPY
 
bitte hab jemand erbarmen mit mir.

Ich hab es mit posEx probiert, aber das problem mit dem "rest"string konnte ich nicht lösen. :(

dann hab ich folgendes probiert:

Delphi-Quellcode:
While not EOF(txt) do
  begin
  ReadLN(Txt, temp);
  lang:=length(such);
  anf:=pos(such, temp);
   while anf <> 0 do
    begin
    result[i]:=copy(temp, anf, lang);
    anf:=pos(such, copy(temp, anf+1, lang));
    memo2.lines.add('Suche erfolgreich! Ich fand in Zeile '+inttostr(j)+' das Ergebnis '+result[i]);
    inc(i);
    end;
  inc(j);
  end;
end;
auch nichts

Mittlerweile bin ich bereit auch dafür zu bezahlen. ich hab sowas von keine ahnung mehr und eine riesige :wall: vorm kopf.

Ich überweise gerne was für ne richtige lösung, die lern ich dann und damit hats sich.

IngoD7 29. Mai 2004 22:17

Re: Problem mit POS und COPY
 
Zitat:

Zitat von Trax
bitte hab jemand erbarmen mit mir.

[...]
Mittlerweile bin ich bereit auch dafür zu bezahlen. [...] Ich überweise gerne was für ne richtige lösung, die lern ich dann und damit hats sich.

Jau! :roll: Wie oft willst du in Zukunft denn noch bezahlen??? Dann zahle jetzt Sharky etwas. Der hat schon eine Möglichkeit gepostet. Aber die lernst du nicht. Die kannst du nicht einmal ein- und umsetzen. Das ist allerdings auch völlig normal, wenn man sich mit den Dingen, die man schaffen möchte, nicht selber vertraut macht. Ob du das nicht kannst oder nicht willst, vermag ich nicht zu beurteilen. Notwendig ist es in jedem Fall.

Ich bleibe also dabei: Es ist das kleine 1 x 1 der Stringbearbeitung, und das solltest du lernen.

Siehe meine Kommentare im Code (möglichst unverändert gelassen).

Delphi-Quellcode:
While not EOF(txt) do
  begin
  ReadLN(Txt, temp);
  lang:=length(such);
  anf:=pos(such, temp);
   while anf <> 0 do
    begin
    result[i]:=copy(temp, anf, lang); //Ist hier dasselbe wie result[i]:=such;
    //Du schreibst dein array result[] voll mit such. Ich frage mal nicht, wieso ....
    {anf:=pos(such, copy(temp, anf+1, lang)); } //Für die Tonne.
    memo2.lines.add('Suche erfolgreich! Zeile '+inttostr(j)+' das Ergebnis '+result[i]);
    delete(temp,1,anf+lang-1); //Hier wird alles bis zum gefundenen such (einschließlich) vorne
                                //von temp abgeschnitten
    anf:=pos(such, temp); //Hier erneute Suche im Rest von temp.
    inc(i);
    end;
  inc(j);
  end;
end;

Trax 30. Mai 2004 11:43

Re: Problem mit POS und COPY
 
Danke für die antwort ingo aber ich kann deinen kommentar nicht nachvollziehen
der source war doch fast fertig
wo ist das problem? ich hatte bisher nur keine ahnung vom delete command und konnte ihn aus dem ersten source nicht anwenden.
na und?
jetzt hab ich gesehen wies funkt und gut is.

passiert
bin halt kein toller programmierer, will ich auch gar nicht werden.
so what? :)

Ich kann den source jetzt lernen, verstehe delete und kann es beim nächsten mal anwenden.
wunderbar und reicht mir völlig.

Danke noch mal für die hilfe :dp:

IngoD7 30. Mai 2004 19:59

Re: Problem mit POS und COPY
 
Zitat:

Zitat von Trax
Danke für die antwort ingo aber ich kann deinen kommentar nicht nachvollziehen

Das will ich dir erklären.

Ich habe keine Lust zu so etwas und fühle mich leicht veräppelt, wenn ich glaube festzustellen, dass der Hilfesuchende selber das ihm Mögliche nicht versucht, um sein Problem zu lösen. Statt dessen wird gewartet, bis zum Schluß doch einer den Copy&Paste-fähigen Code postet. Und wenn das zu lange dauert, wird sogar Geld angeboten.

Verstehe mich bitte richtig, ich weiss, dass es manchmal im Oberstübchen blockiert sein kann und man keinen wirklichen Ansatz erkennen und verfolgen kann. Sowas gibt es, bei dir, bei mir, bei jedermann - kein Problem. Aber die Hinweise zur Selbsthilfe hatte ich in einem früheren Posting hier im Thread gegeben:
Zitat:

Ansonsten: Siehe Hilfe unter Delete, Copy, Pos, PosEx.

Versuche es zu verstehen und probiere es aus (auch die Lösungsvorschläge hier). Das ist quasi das kleine 1 x 1 der Stringbearbeitung. Es zu erlernen bringt dir mehr, als hier auf eine perfekt passende Copy&Paste-Lösung zu warten.
Es wäre für dich ein Leichtes gewesen, die erwähnten String-Grundbefehle in der Hilfe nachzulesen, mit ihnen ein kleines Testprogrämmchen zu machen und zu experimentieren und zu probieren und dann später auch zu verstehen. Das hast du aber einfach nicht getan. Warum nicht?

Trax 30. Mai 2004 20:44

Re: Problem mit POS und COPY
 
das muss wirklich ein missverständnis sein
ich habe es nämlich wirklich versucht
und zwar so lange bis ich die schnauze -auf gut deutsch- voll hatte
und weil ich es können MUSS bin ich auch bereit etwas dafür zu bezahlen... so funktioniert es nunmal
mein problem war a) das posex in meiner delphi hilfe nicht vorhanden ist
und das ich b) unter delete in der hilfe nur bei command, example, ... aber NICHT (dumm, ich weiß) bei procedure geschaut habe
den eintrag hab ich nämlich erst deiner lösung gesehen
copy und pos kannte ich schon vorher

deswegen war deine erste hilfe vorerst für mich abgehackt gewesen


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:39 Uhr.
Seite 2 von 3     12 3      

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