Microsoft Word - Copy and Paste

Anfängerfragen zum Programmieren mit PureBasic.
viochette
Beiträge: 6
Registriert: 16.08.2012 20:28

Microsoft Word - Copy and Paste

Beitrag von viochette »

Hallo,

obwohl ich schon einige Zeit dabei bin, merke ich gerade, dass ich doch noch ein Anfänger bin - daher die Frage hier.
Mein Problem: Ein Editorgadget, eine SQLite Datenbank und ein Word-Dokument.

gebe ich den Text manuell in das Editorfeld ein und speichere den Text - alles super.

Code: Alles auswählen

kompTeil3="irgendwas"
kompTeil4=GetGadgetText(#cboTBneu_Edit)

 OpenDatabase(DataBase1, "db.kplus", "", "")  
 DatabaseUpdate(DataBase1,"INSERT INTO textbausteine (id,pw,baustein) VALUES (NULL,'"+kompTeil3+"','"+kompTeil4+"')") 
 CloseDatabase(DataBase1)

Wenn ich den Text aus einer Worddatei mittels Copy and Paste in das Editorfeld zunächst einfüge dann speichere, geschieht
das, was mich gerade Nerven kostet.

Es scheint wohl Steuerzeichen in Word zu geben, die mir den Datensatz verhauen (ID ist nicht mehr als ID ansprechbar bei Abfrage).
Wie kann ich (generell) aus in Word formatiertem Text einen reinen Text machen ??

Grüße
viochette
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Microsoft Word - Copy and Paste

Beitrag von RSBasic »

Es liegt natürlich daran, dass du einen formatierten Text kopierst. Da EditorGadget kein Reintext-Editor ist, sondern ein RTF-Editor, werden die Formate beim Einfügen übernommen.
Es gibt mehrere Möglichkeiten:
1. Du nimmst ein StringGadget und machst es mehrzeilig (#ES_MULTILINE). Dann hast du immer den reinen Text und musst nichts rausfiltern.
2. Oder du greifst auf die Windows-Zwischenlage zu und ermittelst den Text im richtigen Format. Beispielcodes siehe http://www.rsbasic.de/winapi-library/ siehe Kategorie "Zwischenablage"
3. Du kannst z.B. auch mit SetGadgetText(#Gadget, GetGadgetText(#Gadget)) deinen formatierten Text in einen Reintext umwandeln.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Microsoft Word - Copy and Paste

Beitrag von Kiffi »

zusätzlich zum RSBasics Anmerkungen:
viochette hat geschrieben:

Code: Alles auswählen

[...]
 DatabaseUpdate(DataBase1,"INSERT INTO textbausteine (id,pw,baustein) VALUES (NULL,'"+kompTeil3+"','"+kompTeil4+"')")
[...]
das ist übel, wenn in pw oder baustein selber ein ' (einfaches Hochkomma (Chr(39))) enthalten ist. Das solltest Du vor dem Einfügen in die Datenbank 'entschärfen' indem Du es verdoppelst:

Code: Alles auswählen

kompTeil3 = ReplaceString(kompTeil3, "'", "''")
kompTeil4 = ReplaceString(kompTeil4, "'", "''")
Ab PB 5.4 ist es möglich, Parameter zu binden (SetDatabase*()), um SQL-Injections zu verhindern.

Grüße ... Peter
a²+b²=mc²
viochette
Beiträge: 6
Registriert: 16.08.2012 20:28

Re: Microsoft Word - Copy and Paste

Beitrag von viochette »

Danke Euch!

@RSBasic
Werde ich ausprobieren, - das mit dem SetGadgetText(#Gadget, GetGadgetText(#Gadget)) hatte ich schon - , hat nicht funktioniert, gleicher Effekt.

Mit der Zwischenablage, da bin ich gespannt und mehrzeiliges StringGadget, das hatte ich absolut nicht auf dem Schirm.



@Kiffi
Richtig, wertvoller Hinweis - das muss ich auch noch kugelsicher machen.

Danke
Guido
GPI
Beiträge: 1511
Registriert: 29.08.2004 13:18
Kontaktdaten:

Re: Microsoft Word - Copy and Paste

Beitrag von GPI »

Kiffi hat geschrieben:Ab PB 5.4 ist es möglich, Parameter zu binden (SetDatabase*()), um SQL-Injections zu verhindern.
sehr zu empfehlen, sonst kommt irgendwer mal auf die idee ein ';DROP TABLE ins Textfeld einzugeben.

Generell sollte man immer alle Eingaben überprüfen, bevor man sie mit Datenbankbefehlen irgendwo hochlädt. Den Benutzer darf man niemals trauen, die kommen immer auf die lustigsten Ideen. Gerade bei Webanwendungen wird es sonst sehr schnell sehr kritisch.
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
viochette
Beiträge: 6
Registriert: 16.08.2012 20:28

Re: Microsoft Word - Copy and Paste

Beitrag von viochette »

Hallo,
kleine Wasserstandsmeldung:
Habe das dann letztendlich mit dem mehrzeiligen StringGadget gelöst.
Danke für Eure Hilfe, hat mich auch allgemein weitergebracht.

@RSBasic
Deine Seite ist wahrhaftig eine Fundgrube und absolut wertvoll als Ressource, toll !!

Gruß Guido
Antworten