Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Copy / Paste Anfrage (https://www.delphipraxis.net/217487-copy-paste-anfrage.html)

Gandhiman 10. Jul 2025 11:24

Copy / Paste Anfrage
 
Dear Friends,
ich muss mit Rechtsklick aus einer PDF Datei 3 Zeilen Text koieren und in Stringgrid eifügen. Bovor ich einfüge es muss jeweils am Zeilenende ein Leerzeichen eingefügt werden. Wie kann ich es erledigen ?

Text Format ist wie folgt:
1111 11111 1111 111111 1111 11111
2222 22222 222 22222 2222 222
3333 333 3333 333333 3333 33333

Mein Code lautet:
procedure TfrmMain.BTN_InsertClick(Sender: TObject);
var
WordCount: Integer;
WordStart: Integer;
S: String;
I: Integer;
begin

//
WordCount := 0;
WordStart := 1;
S := Clipboard.AsText + ' ';
s := s.Replace(',', '', [rfReplaceAll, rfIgnoreCase]);
s := s.Replace('.', ',', [rfReplaceAll, rfIgnoreCase]);

for I := 1 to Length(S) do
if S[I] = ' ' then
begin
if WordStart <> I then
begin

StringGrid1.Cells[WordCount mod StringGrid1.ColCount, WordCount div StringGrid1.ColCount] :=
Copy(S, WordStart, I - WordStart);
Inc(WordCount);
end;
WordStart := I + 1;
end;
StringGrid1.RowCount := ((WordCount - 1) div StringGrid1.ColCount) + 1;
dbedit10.text := StringGrid1.Cells[0, 0];
dbedit11.text := StringGrid1.Cells[1, 0];
dbedit12.text := StringGrid1.Cells[2, 0];
dbedit13.text := StringGrid1.Cells[3, 0];
dbedit14.text := StringGrid1.Cells[4, 0];
dbedit15.text := StringGrid1.Cells[5, 0];
dbedit16.text := StringGrid1.Cells[0, 1];
dbedit17.text := StringGrid1.Cells[1, 1];
dbedit18.text := StringGrid1.Cells[2, 1];
dbedit19.text := StringGrid1.Cells[3, 1];
dbedit20.text := StringGrid1.Cells[4, 1];
dbedit21.text := StringGrid1.Cells[5, 1];
dbedit22.text := StringGrid1.Cells[0, 2];
dbedit23.text := StringGrid1.Cells[1, 2];
dbedit24.text := StringGrid1.Cells[2, 2];
dbedit25.text := StringGrid1.Cells[3, 2];
dbedit26.text := StringGrid1.Cells[4, 2];
dbedit27.text := StringGrid1.Cells[5, 2];
end;

Vielen Dank !

dummzeuch 10. Jul 2025 14:37

AW: Copy / Paste Anfrage
 
Füge bitte [delphi]-Tags um den Sourcecode ein, damit man ihn auch lesen kann. Das erhöht die Wahrscheinlichkeit für Antworten gewaltig.

jaenicke 10. Jul 2025 18:11

AW: Copy / Paste Anfrage
 
Möchtest du den Zeilenumbruch durch ein Leerzeichen ersetzen? Das sollte so gehen:
Delphi-Quellcode:
s := s.Replace(sLineBreak, ' ', [rfReplaceAll]);
// je nach Format des Zeilenumbruchs statt sLineBreak z.B. #10 oder #13

himitsu 10. Jul 2025 18:50

AW: Copy / Paste Anfrage
 
Delphi-Referenz durchsuchenstring.Split
Delphi-Referenz durchsuchenSplitString (StrUtils)
Delphi-Referenz durchsuchenTStringList.DelimitedText
oder
oder
oder
...

Delphi-Quellcode:
//var SL: TStringList;
SL.StrictDelimiter := True;
SL.Delimiter := ' ';
SL.DelimitedText := S;
{ so, jetzt ist jede "Zeile" ein Wort }
Oder zwei StringListen. Die Erste trennt die Zeilen und die Zeite die Wörter jeder einzelnen Zeile.


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