![]() |
Delphi-Version: 10.2 Tokyo
Doppelte durch einfache Hochkommas ersetzen
Hi zusammen
Von Workbench habe ich Scripts wie diese exportiert:
Delphi-Quellcode:
Und solches soll nun in sowas eingefügt werden:
CREATE TABLE "PdfOfficerDB"."tblAuthor"("AuthorID" INTEGER PRIMARY KEY NOT NULL,
"Name" VARCHAR(45) NOT NULL, "Vorname" VARCHAR(45) NOT NULL, "tblUser_idTblUser" INTEGER NOT NULL, CONSTRAINT "fk_tblAuthor_tblUser1" FOREIGN KEY("tblUser_idTblUser") REFERENCES "tblUser"("idTblUser"));
Delphi-Quellcode:
Das heisst: einige der doppelten Hochkommas muss ich entfernen, andere durch einfache ersetzen sowie zusätzlich am Ende jeder Zeile den String abschliessen und, wenn der String in dernächsten Zeile fortgesetzt wird, ein + hinzufügen.
function TDMLSQLiteOfficerFE.CreateTblFile: string;
var SQLstring: String; begin SQLstring := 'CREATE TABLE tblFile(FileID INTEGER PRIMARY KEY NOT NULL,'+ 'FilePath" VARCHAR(100) NOT NULL,'+ 'FileType" VARCHAR(5) NOT NULL,'+ 'FileVersion" VARCHAR(3) NOT NULL,'+ 'tblDocuments_DocuID" INTEGER NOT NULL,'+ 'CONSTRAINT fk_tblFile_tblDocuments1'+ 'FOREIGN KEY(tblDocuments_DocuID)'+ 'REFERENCES tblDocuments(DocuID"))'; Result := SQLString; end; Ich hab das erstmal über Suchen und ersetzen versucht, aber da meckert Delphi: Zitat:
Zitat:
Wie kriege ich die doppelten Hochkommas weg, ohne jedes einzeln entfernen zu müssen? Gruss Delbor |
AW: Doppelte durch einfache Hochkommas ersetzen
Zuerst alle " entfernen, dann MultiPaste nutzen.
|
AW: Doppelte durch einfache Hochkommas ersetzen
TigerLilly
Zitat:
Aber Google ist doch ein schlaues ![]() Vielen Dank für deine Antwort! Gruss Delbor PS: Ich habs jettzt auch mal mit Notepad++ versucht. suchen : ", ersetzen durch '. Aus
Delphi-Quellcode:
wurde
CREATE TABLE "PdfOfficerDB"."tblOrt"("OrtID" INTEGER PRIMARY KEY NOT NULL,
"Ort" VARCHAR(65), "PLZ" VARCHAR(6));
Delphi-Quellcode:
Ob da mit den beiden Möglichkeiten (Notepad++ oder Multipaste wirklich Zeit und Tipparbeit eingespart würde, bin ch mir nicht sicher. Das Ergebnis von Notepad++ sähe eventuell besser aus, wenn die nicht benötigten Tabellennamen vorher entfernt würden...
CREATE TABLE 'PdfOfficerDB"."tblOrt"("OrtID' INTEGER PRIMARY KEY NOT NULL,
'Ort' VARCHAR(65), 'PLZ' VARCHAR(6)); |
AW: Doppelte durch einfache Hochkommas ersetzen
Ich hoffe das Beispiel
Delphi-Quellcode:
war noch nicht fertig, das könnte doch in die Hose gehen!
...
'FilePath" VARCHAR(100) NOT NULL,'+ 'FileType" VARCHAR(5) NOT NULL,'+ 'FileVersion" VARCHAR(3) NOT NULL,'+ 'tblDocuments_DocuID" INTEGER NOT NULL,'+ ... Gruß K-H |
AW: Doppelte durch einfache Hochkommas ersetzen
Hi p80286
Zitat:
Effizienter würde das eventuell durch ein eigenes kleines Tool gelöst... Gruss Delbor PS: Im Nachinein sehe ich: das war eines der Statements, die ich zuvor händisch angepasst habe - dabei gingen dann einige Sachen vergessen. |
AW: Doppelte durch einfache Hochkommas ersetzen
Hmmm..
Wenn ich das richtig sehe, soll aus:
Code:
folgendes werden:
CREATE TABLE "PdfOfficerDB"."tblAuthor"("AuthorID" INTEGER PRIMARY KEY NOT NULL,
"Name" VARCHAR(45) NOT NULL, "Vorname" VARCHAR(45) NOT NULL, "tblUser_idTblUser" INTEGER NOT NULL, CONSTRAINT "fk_tblAuthor_tblUser1" FOREIGN KEY("tblUser_idTblUser") REFERENCES "tblUser"("idTblUser"));
Code:
Wenn das richtig ist, dann würde es z.B. so gehen:
'CREATE TABLE PdfOfficerDB.tblAuthor(AuthorID INTEGER PRIMARY KEY NOT NULL, '+
'Name VARCHAR(45) NOT NULL, '+ 'Vorname VARCHAR(45) NOT NULL, '+ 'tblUser_idTblUser INTEGER NOT NULL, '+ 'CONSTRAINT fk_tblAuthor_tblUser1 '+ 'FOREIGN KEY(tblUser_idTblUser) '+ 'REFERENCES tblUser(idTblUser)); ';
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i : integer; sl : TStringList; l : integer; begin sl := TStringList.Create; try // Alle " löschen sl.Text := Trim(StringReplace(Memo1.Text,'"','',[rfReplaceAll])); for i := 0 to sl.Count-1 do begin // Anzahl führende Leerzeichen ermitteln l := Length(sl[i]) - Length(Trim(sl[i])); // Führende Leerzeichen + in Anführungszeichen setzen (mit Trennleerzeichen je Zeilenende) sl[i] := StringOfChar(' ',l) + QuotedStr(Trim(sl[i])+ ' '); // '+' bei allen Zeilen, außer der letzten, anhängen if i < sl.Count-1 then sl[i] := sl[i] +'+' else // ';' bei letzter Zeilen anhängen sl[i] := sl[i] +';'; end; Memo2.Text := sl.Text; finally sl.Free; end; end; |
AW: Doppelte durch einfache Hochkommas ersetzen
Hi HolgerX
Danke für dein Codeschnipsel! Gruss Delbor |
AW: Doppelte durch einfache Hochkommas ersetzen
Wieso können eigentlich die doppelten Anführungszeichen nicht bleiben? Das sind doch nur gequotete Identifier und die sollten auch im Delphi-Code funktionieren.
|
AW: Doppelte durch einfache Hochkommas ersetzen
Hi Uwe Raabe
Zitat:
Gruss Delbor |
AW: Doppelte durch einfache Hochkommas ersetzen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:22 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