Gibs Implode bei C++ ?

Sneaker

Mitglied
Hallo

Ich hab mal wieder ne Frage und zwar gibt eine Funktion die ein 2D charakter array zu einem normalen 1D charakter array mit einem beliebigen trennzeichen verbindet ?
Halt wie die PHP funktion Implode.

MfG
Sneaker
 
Also meines Wissens nach gibt es da nix. Da musst du dir hald selbst was programmieren, der Algorithmus dafür ist ja auch net sonderlich schwer.
Am besten du baust dir daraus gleich eine vernünftige Klasse, denn sowas kann man immer mal brauchen.
In diese Klasse fügst du dann die entsprechenden Methoden ein um die Behandlungen mit solchen Arrays zu verarbeiten.

Gruss Homer
 
Jo hab ich jetzt auch gemacht hatte keinen bock zu warten ;)
Ich frag ja auch nur weil Programmierer sind ja tipp faule Menschen und da hab ich gedacht sowas gibs vielleicht schon, weil wie schon gesagt sowas wird recht oft gebraucht...

Naja hab noch ein paar fragen und zwar: (ganz anderes Thema)
Wie kann ich mir eine Datei erzeugen wenn sie noch nicht existiert und wie kann ich eine datei in der was steht leeren ? muss ich da alles überschreiben oder gibs da tolle funktionen ? ;)
naja hoffe auf antwort sonst bin ich wieder schneller :p
 
Also das mit dem Datei erzeugen ist kein Stress:
Code:
#include <stdio.h>
int main()
{
 // Filepointer erstellen
 FILE* pDatei = NULL;
 // Datei zum schreiben öffenen und wenn nicht da dann erstllen
 pDatei = fopen("c:\\test.txt", "w");
 // schauen ob alles ok
 if ( pDatei != NULL )
 {
  // was reinschreiben (schau mal in MSDN nach fputs() fwrite())
 }
 // Datei wieder schließen
 fclose(pDatei);
 // den Inhalt der Datei kann man ganz einfach löschen, indem man
 // sie nochmal zum schreiben öffnet, denn wenn sie schon vorhanden
 // ist, dann ist sie leer
 pDatei = fopen("c:\\test.txt", "w");
 // gleich wieder schließen
 fclose(pDatei);
 return 0;
}
Schau einfach mal ein wenig in der MSDN rum, gibt noch zig Möglichkeiten um mit Dateien zu arbeiten

Gruss Homer
 
Die hilfe benutz ich heute schon den ganzen tag.
wegen dem Dateien erstellen muss ich da den kompletten fadt angeben ? weil bei mir funzt es nicht ich gib als pfad nur den datei namen an wird dann nicht die datei im aktuellen directory erstellt ?

Das mit dem leeren funzt aber gut bloss leider kann ich irgendwie keine abfrage machen ob die datei überhaupt existiert dann müsste pDatei doch NULL sein ? also false wenn ich das in eine if bedingung packe dann wird bloss das close nicht ausgeführt somit wird die datei auch nicht geleert udn das wundert mich :(
Code:
int CJobs::clearJobFile()
{
	FILE* pDatei = NULL;
 	pDatei = fopen(m_acPfad, "w");
	if(pDatei) fclose(pDatei);
	return 0;
}

wobei der m_acPfad der Dateiname ist.
Sollte doch richtig sein oder ?

edit:
hat sich erligt mit dem clear wenn ich schreiben will kann ich nicht lesen ob die datei existiert !
 
Zuletzt bearbeitet:
So kannst Du prüfen, ob Deine Datei existiert!!!

Code:
BOOL CJobs::IsFileAvailable()
{
	try
	{
		CFile file(m_acPfad, CFile::modeRead );
		file.Close();
	}
	catch (CFileException* e)
	{
		if (e->m_cause == CFileException::fileNotFound)
		{
			e->Delete();
			return (FALSE);
		}
					
		e->ReportError();
		e->Delete();
		return (FALSE);
	}

	return (TRUE);

} // BOOL CJobs::IsFileAvailable()
 
Also sorry goela, bevor jemand Exeption-Hanling und mit der CFile-Klasse umgeht. Sollte er doch mal die grundlegenden C-Befehle für die Dateibehandlung können. *g*

@Sneaker schau dir mal access() bzw. _access() an, damit kannst du so einiges nachprüfen, ob eine Datei existiert, oder ob du Schreibrechte hast usw...


Gruss Homer
 
Also sorry goela, bevor jemand Exeption-Hanling und mit der CFile-Klasse umgeht.
Da stimme ich Dir nur teilweise zu!!! Warum?
1. Wenn jemand schon objektorientiert Programmiert, dann sollte er wenn möglich nicht C-API verwenden!! Beispiel: malloc, free in C++ - nein danke! new, delete!!! usw.
2. Bin davon ausgegangen, dass er mit der MFC arbeitet! Dann ist es durchaus angebrachter mit CFile zu arbeiten!!!
3. Exceptions sollte eigentlich von Anfang an verwendet werden, da gerade bei Dateien öffnen die Fehler wesentlich besser abgefangen werden können.
 
es gibt doch auch noch die ansi-konformen klassen ifstream und ofstream für die bearbeitung von dateien. beide enthalten eine klassenmethode namens open(), die zurückgibt, ob die datei geöffnet werden konnte.
nur weil man nicht mit der mfc oder vcl arbeiten will, muss man ja nicht ohne objektorientierung auskommen. ;)
 
nur weil man nicht mit der mfc oder vcl arbeiten will, muss man ja nicht ohne objektorientierung auskommen
Habe ich ja auch nicht behauptet!!!!!! Wenn aber schon objektorientiert, dann schon richtig! Es muss ja nicht die MFC sein, aber OOP und "schäbiges" printf, fopen!!!!

Wie Du ja geschrieben hast gibt es ja eben die ansi-konformen Klassen!!! Die sollte man wenn dann schon verwenden!!!!
 

Neue Beiträge

Zurück