Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

C plus plus Variable in String verwenden

Frage Entwicklung C und C++

Mitglied: TokenRing

TokenRing (Level 1) - Jetzt verbinden

10.01.2011 um 14:19 Uhr, 5610 Aufrufe, 5 Kommentare

Schönen guten Tag,

ich habe ein kleines Problem mit Variablen und C++.

Folgendes Szenario. Ich habe ein kleines Programm geschrieben das folgendes macht:

Der Benutzer wird nach Pfadangaben, Kundenname etc gefragt. Diese Angaben werden dann verwendet um in eine Batchdatei geschrieben zu werden.
Ziel ist es Batchdateien für Backup-Jobs zu generieren.

Die Batchfiles werden via std::ofstream outfile; geschrieben.

Klappt auch alles soweit ganz gut. Nur ein Problem hab ich noch.

Die Batchdatei soll verwendet werden um via blat.exe (tool fuer email versand) das Logfile an eine vordefinierte email-Adresse zu versenden. Der Syntax von der Blat.exe schaut nun dazu folgendermassen aus:

blat c:testlog.txt -to "testmail@test.de" -s "fehler im backup bei Kundenname"


So, mein Dilema ist nun, das ich ja verschiedene Kundenname habe. Also ist Kundenname nun meine string-variable. Diese muss zwingend aber zwischen den Anführungszeichen stehen, so dass der syntax der blat.exe funktioniert.. Wenn diese aber wiederrum zwischen den Anführungszeichen steht wird diese ja nicht als Variable erkannt.

Lange Rede kurzer Sinn. Wie kann ich Variable in einen String einfügen ? Ich hab jetzt schon ziemlich lange gesucht aber nichts passendes gefunden.

Bitte um Hilfe.

Vielen Dank und viele Grüße.

Achja, meine Programmierkenntnisse sind annähernd null, also bitte die Antwort so einfach wie möglich
Mitglied: dog
10.01.2011 um 19:30 Uhr
Der Vollständigkeit halber in reinem C (ohne Fehlerprüfung):
01.
#include <string.h> 
02.
#include <stdio.h> 
03.
#include <stdlib.h> 
04.
 
05.
int main (int argc, char const *argv[]) 
06.
07.
	 
08.
	char *user = "Hans"; 
09.
	const char *tpl = "blat c:testlog.txt -to \"testmail@test.de\" -s \"fehler im backup bei %s\""; 
10.
	 
11.
	int bufSize = strlen(tpl)-2+strlen(user)+1; 
12.
	char *outBuf = (char *)malloc(bufSize); 
13.
	 
14.
	sprintf(outBuf, tpl, user); 
15.
	 
16.
	system(outBuf); 
17.
	 
18.
	return 0; 
19.
}
Bitte warten ..
Mitglied: TokenRing
10.01.2011 um 21:51 Uhr
Hallo und vielen vielen Dank für die schnellen Antworten.

Bisher bin ich aber leider noch nicht weitergekommen.
Meine bisherige Code-Zeile (logfile und kundename sind variablen die bereits vorher eingegeben werden)

outfile << " blat" << logfile << "logmontag.txt" << " to -test@testmail.de -S \"Kein Fehler im Backup \" << kundenname <<std::endl;

ergibt logischerweise

blat \\nas\logmontag.txt to -test@testmail.de -S "Kein Fehler im Backup" Testkunde

Die Zeile muss aber so aussehen:

blat \\nas\logmontag.txt to -test@testmail.de -S "Kein Fehler im Backup Testkunde"

Also die Anführungszeichen müssen auch den Kundennamen einschließen.

Sorry wenn ich mich zu blöd anstelle aber ich bekomms einfach nicht hin.
Bitte warten ..
Mitglied: Florian.Sauber
10.01.2011 um 23:27 Uhr
Hallo TokenRing!

Zitat von TokenRing:
Meine bisherige Code-Zeile (logfile und kundename sind variablen die bereits vorher eingegeben werden)

outfile << " blat" << logfile << "logmontag.txt" << " to -test@testmail.de -S \"Kein Fehler im Backup \" << kundenname <<std::endl;

ergibt logischerweise

blat \\nas\logmontag.txt to -test@testmail.de -S "Kein Fehler im Backup" Testkunde

Es wäre natürlich interessant, wie Du die die Variablen logfile und kundenname einliest, aber ich gehe mal davon aus, dass man Dich so verstehen kann, dass die Ausgabe der Variable logfile "\\nas\"(ohne Anführungszeichen) so steht und Du mit den Escapesequenzen bereits vertraut bist.
Da Du mit dem überladenenden isertion-operator (<< ) arbeitest, dürfte das ja kein Problem sein. Jetzt hab ich C++ gerade nicht mehr so aktuell auf dem Schirm und auch keine C++ Umgebung da, um das zu testen, aber da Du den String ja eh konkatenierst (verkettest), sollte doch

01.
outfile << "blat" << logfile << "logmontag.txt" << " to -test@testmail.de -S \"Kein Fehler im Backup " << kundenname << "\"" << std::endl;
zu folgendem führen...
blat \\nas\logmontag.txt to -test@testmail.de -S "Kein Fehler im Backup Testkunde"
?!?

LG Florian
Bitte warten ..
Mitglied: TokenRing
11.01.2011 um 10:42 Uhr
Vielen vielen Dank Florian.

Hat wunderbar funktioniert.

Auch nochmal vielen Dank an Snow und Dog.

Euch einen schönen Tag und viele Grüße, Token.

Thread gelöst.
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
PHP
gelöst Variable einer seite auf einer zweiten verwenden (2)

Frage von tobmes zum Thema PHP ...

Batch & Shell
gelöst Selected Gridview Value in Variable schreiben (4)

Frage von reissaus73 zum Thema Batch & Shell ...

C und C++
gelöst Anzahl der Buchstaben in einem String Element Array C++ (3)

Frage von Protected zum Thema C und C ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...

Microsoft Office
Keine Updates für Office 2016 (11)

Frage von Motte990 zum Thema Microsoft Office ...