Hallo,<br>folgendes Problem:<p>
Ich möchte eine Datei lese und schreib Klasse in VC6 erstellen für Configdateien erstellen.<br>
Das Auslesen eines gesuchten Parameters mit dazugehörigem Wert funktioniert. Nun möchte ich aber einen gesuchten Wert ändern.(folgender Code)<p>
<PRE>
// schreibt einzelne werte in das config.cfg file
void CConfigFile::FileSchreiben(
{
CString stemppara, stempwert;
float ftempwert;
long laenge=0;
//datei öffnen
FILE *gstream = fopen( "config.cfg", "r+t" );
if( gstream == NULL )
{
AfxMessageBox("Die Datei config.cfg konnte nicht geöffnet werden!",MB_OK|MB_ICONSTOP);
}
else
{
// auf dateianfang springen
fseek( gstream, 0L, SEEK_SET );
// solange die datei durchsuchen, bis das suchwort gefunden wurde
while ( !feof( gstream ) )
{
// auslesen des dateiinhalts
fscanf( gstream, "%s%f", stemppara, &ftempwert );
if ( stemppara == m_sSuchPara )
{
stempwert.Format("%0.f", ftempwert);
laenge = (strlen(stemppara))+(strlen(stempwert))+1;
laenge = laenge - ( 2 * laenge );
fseek( gstream, laenge, SEEK_CUR );
//aktuelle werte wieder in datei schreiben
fprintf( gstream, "%s %.0f\n",m_sSuchPara, m_fSuchWert );
break;
}
fscanf( gstream, "%s%f\n", stemppara,&ftempwert );
}
// beenden des streams
fclose( gstream );
AfxMessageBox("Daten wurden gespeichert.");
}
}
</PRE>
<br><br>
leider wird der alte wert nicht überschreiben. der neue wert schreibt sich an das ende der datei.<br>
<br>freue mich über jegliche Hilfe
Ich möchte eine Datei lese und schreib Klasse in VC6 erstellen für Configdateien erstellen.<br>
Das Auslesen eines gesuchten Parameters mit dazugehörigem Wert funktioniert. Nun möchte ich aber einen gesuchten Wert ändern.(folgender Code)<p>
<PRE>
// schreibt einzelne werte in das config.cfg file
void CConfigFile::FileSchreiben(
{
CString stemppara, stempwert;
float ftempwert;
long laenge=0;
//datei öffnen
FILE *gstream = fopen( "config.cfg", "r+t" );
if( gstream == NULL )
{
AfxMessageBox("Die Datei config.cfg konnte nicht geöffnet werden!",MB_OK|MB_ICONSTOP);
}
else
{
// auf dateianfang springen
fseek( gstream, 0L, SEEK_SET );
// solange die datei durchsuchen, bis das suchwort gefunden wurde
while ( !feof( gstream ) )
{
// auslesen des dateiinhalts
fscanf( gstream, "%s%f", stemppara, &ftempwert );
if ( stemppara == m_sSuchPara )
{
stempwert.Format("%0.f", ftempwert);
laenge = (strlen(stemppara))+(strlen(stempwert))+1;
laenge = laenge - ( 2 * laenge );
fseek( gstream, laenge, SEEK_CUR );
//aktuelle werte wieder in datei schreiben
fprintf( gstream, "%s %.0f\n",m_sSuchPara, m_fSuchWert );
break;
}
fscanf( gstream, "%s%f\n", stemppara,&ftempwert );
}
// beenden des streams
fclose( gstream );
AfxMessageBox("Daten wurden gespeichert.");
}
}
</PRE>
<br><br>
leider wird der alte wert nicht überschreiben. der neue wert schreibt sich an das ende der datei.<br>
<br>freue mich über jegliche Hilfe
Comment