AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Quelltext in String konvertieren

Ein Thema von Codehunter · begonnen am 3. Mai 2019 · letzter Beitrag vom 3. Mai 2019
Antwort Antwort
Seite 1 von 2  1 2   
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#1

Quelltext in String konvertieren

  Alt 3. Mai 2019, 08:12
Hallo,

Ich habe oft den Fall, dass ich längere mehrzeilige SQL-Queries als String brauche. Entsprechende Einfüge-Funktionen gibts in MMX, CnPack und GExperts, nur dummerweise bei keinem so wie ich es bräuchte. Ein Beispiel:
Code:
SELECT T1.A AS NAME_1,
       T2.A AS NAME_2,
       T2.B AS NAME_3
FROM MY_TABLE_1 AS T1
LEFT JOIN MY_TABLE_2 AS T2
  ON T1.KEYFIELD=T2.KEYFIELD
WHERE T2.C=:MY_PARAM_1
ORDER BY T2.B;
Daraus sollte werden:
Delphi-Quellcode:
'SELECT T1.A AS NAME_1, ' +
       'T2.A AS NAME_2, ' +
       'T2.B AS NAME_3 ' +
'FROM MY_TABLE_1 AS T1 ' +
'LEFT JOIN MY_TABLE_2 AS T2 ' +
  'ON T1.KEYFIELD=T2.KEYFIELD ' +
'WHERE T2.C=:MY_PARAM_1 ' +
'ORDER BY T2.B;';
Für sowas wäre es ideal, wenn Delphi HereDoc unterstützen würde anstatt dass man solche Klimmzüge machen muss. In meinem Fall scheidet auch die sauberere Lösung mit den Resourcenstrings aus, weil ich die Queries dynamisch zusammenbauen muss. Am nächsten dran ist für meinen Bedarf noch GExperts. Allerdings muss ich hier dann noch einen zweiten Schritt gehen und alle "'," in "' +" ersetzen. CnPack und MMX konvertieren jeweils noch die Zeilenumbrüche in "#13#10", was ja hier im Fall von SQL völlig unnötig ist.

Insgesamt halt ein bissl mühselig bei langen Queries. Der oben gezeigte ist ja noch winzig im Vergleich...

Grüße
Cody
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden

Geändert von Codehunter ( 3. Mai 2019 um 08:16 Uhr)
  Mit Zitat antworten Zitat
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.172 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Quelltext in String konvertieren

  Alt 3. Mai 2019, 08:17
Dir geht es um die Einrückung?
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.269 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Quelltext in String konvertieren

  Alt 3. Mai 2019, 08:21
Hallo,
Zitat:
Zeilenumbrüche in "#13#10", was ja hier im Fall von SQL völlig unnötig ist
Unnötig vielleicht, aber beim DBMonitor leichter lesbar.
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Quelltext in String konvertieren

  Alt 3. Mai 2019, 08:28
Hallo,
Zitat:
Zeilenumbrüche in "#13#10", was ja hier im Fall von SQL völlig unnötig ist
Unnötig vielleicht, aber beim DBMonitor leichter lesbar.
Haste schon recht. Allerdings in meinem Fall nicht so kritisch. Die Queries werden vorher in einem SQL-Client entwickelt und von dort kommen auch die Umbrüche und Einrückungen. Wird also erst nach Delphi kopiert wenns fertig ist.
Dir geht es um die Einrückung?
Auch. In den meisten Fällen konvertieren die Plugins die vorangestellten Spaces in den String. Ist kein Drama, damit könnte ich ja noch leben. Mehr stört mich der Zeilenumbruch nach #13#10 am Ende. Wegens der Lesbarkeit in der Delphi-Unit.
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.753 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Quelltext in String konvertieren

  Alt 3. Mai 2019, 08:36
Ups, hab mich komplett vertan.

Sorry, kann gelöscht werden.
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
jottkaerr

Registriert seit: 2. Jul 2007
Ort: Tuttlingen
81 Beiträge
 
Delphi 10.1 Berlin Professional
 
#6

AW: Quelltext in String konvertieren

  Alt 3. Mai 2019, 08:59
Du könntest mit Suchen&Ersetzen arbeiten. Markiere den Text, rufe den Suchen&Ersetzen-Dialog auf, verwende
Code:
^{ *}{[^ ].*}$
als Suchmuster und
Code:
\0'\1 ' +
als Ersetzungstext. Bei den Optionen des Dialogs muss "Reguläre Ausdrücke" aktiviert sein. Nach dem Ausführen mit "Alles ersetzen" musst Du nur noch in der letzten Zeile (an deren Ende der Cursor positioniert wird) das Plus durch ein Semikolon ersetzen.

Falls sich jemand wundern sollte, wieso das eigentlich überflüssige "[^ ]" im zweiten Klammernpaar steht: der eigentlich äquivalente Suchausdruck
Code:
^{ *}{.*}$
hat bei Leerzeilen abgebrochen. Fragt mich nicht wieso ...
Jürgen Krämer
Sometimes I think the surest sign that intelligent life exists elsewhere
in the universe is that none of it has tried to contact us. (Calvin)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#7

AW: Quelltext in String konvertieren

  Alt 3. Mai 2019, 09:12
In meinem Fall scheidet auch die sauberere Lösung mit den Resourcenstrings aus, weil ich die Queries dynamisch zusammenbauen muss. Am nächsten dran ist für meinen Bedarf noch GExperts. Allerdings muss ich hier dann noch einen zweiten Schritt gehen und alle "'," in "' +" ersetzen. CnPack und MMX konvertieren jeweils noch die Zeilenumbrüche in "#13#10", was ja hier im Fall von SQL völlig unnötig ist.
Wahrscheinlich verstehe ich Dein Problem nicht richtig, denn es sollte für Dich doch kein Problem sein eine Importfunktion zu bauen die den SQL-Text in "'" einrahmt. Strings in SQL natürlich in "''" einpacken. Damit solltest Du doch eigentlich die meiste Arbeit erledigt haben?

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Quelltext in String konvertieren

  Alt 3. Mai 2019, 09:29
Du könntest mit Suchen&Ersetzen arbeiten.
Interessante Idee! Nur wenn ich das genau so versuche wie beschrieben, sagt Delphi lediglich, dass keine Entsprechungen gefunden werden.

Wahrscheinlich verstehe ich Dein Problem nicht richtig, denn es sollte für Dich doch kein Problem sein eine Importfunktion zu bauen die den SQL-Text in "'" einrahmt.
Ich hatte eigentlich nicht vor, wegen diesem "Sekundärproblemchen" in die IDE-Plugin-Entwicklung einzusteigen ^^ Du gehst vmtl. irrtümlich davon aus, dass ich den SQL-Query in ein eigenes Programm importieren und formatieren will. Ich red aber von der Delphi-IDE. Wobei mich das auf die Idee bringt, ein kleines Tool zu machen das einfach in der TNA rumliegt und auf einen globalen Shortut lauscht und bei Bedarf im Clipboard arbeitet.
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
10.934 Beiträge
 
Delphi 12 Athens
 
#9

AW: Quelltext in String konvertieren

  Alt 3. Mai 2019, 09:53
Die IDE hat im Menü "Bearbeiten" einen Eintrag "Mehrfach einfügen". Dieses Multipaste macht mit den richtigen Einstellungen ziemlich genau was du willst:
Miniaturansicht angehängter Grafiken
03-05-_2019_09-51-14.png  
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.449 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#10

AW: Quelltext in String konvertieren

  Alt 3. Mai 2019, 10:02
Ich weiss, Du hast GExperts schon erwähnt. Aber kennst Du den Editor-Experten "Convert Strings"?

OK, ich sehe gerade, es gibt keine Möglichkeit, dabei die Zeilenumbrüche wegzulassen. Wäre vielleicht eine Erweiterungsidee und gar nicht so kompliziert umzusetzen.

Done.

https://blog.dummzeuch.de/wp-content...rt-Strings.png

Es gibt natürlich davon noch kein Release, aber Du kannst Dir ja einfach eine neue DLL backen. How to compile GExperts.
Thomas Mueller

Geändert von dummzeuch ( 3. Mai 2019 um 10:15 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 09:59 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