Hallo zusammen,
ich muss einen Zahl mitten in einer Textdatei ändern.
Dazu muss ich aus Datei 1 die Zahl auslesen (auch mitten in der Datei) und sie dann mitten in die Datei 2 schreiben.
Die passenden Punke muss ich mir natürlich auch noch raussuchen.
Wie mache ich das?
Hoffe Ihr könnt mir helfen.
Habe auch schon gesucht aber nichts hilfreiches gefunden.
gr.
Robert
This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Textdatei ändern
Started by
Lehrling1988
, Nov 17 2009 14:09
1 reply to this topic
Posted 17 November 2009 - 14:09
Man lernt nie aus...darum bin ich immer noch ein Lehrling und werde es immer bleiben...
Posted 17 November 2009 - 16:28
QUOTE (Lehrling1988 @ 2009-11-17 15:09) |
Hallo zusammen, ich muss einen Zahl mitten in einer Textdatei ändern. Dazu muss ich aus Datei 1 die Zahl auslesen (auch mitten in der Datei) und sie dann mitten in die Datei 2 schreiben. Die passenden Punke muss ich mir natürlich auch noch raussuchen. Wie mache ich das? Hoffe Ihr könnt mir helfen. Habe auch schon gesucht aber nichts hilfreiches gefunden. gr. Robert |
Hallo,
erst mal nur auf die Schnelle: Wir passen den Programmpfad in einem ini-File wie folgt an:
CODE |
function UpdatePathInIni() STRING szFile, svResult, svString; LIST listID; NUMBER nRc; STRING svCurrentPath, svNewPath, svTmp; NUMBER pos, nIndexDest, nIndexSrc, nCount; begin // get the path as it is currently used in opalctrl.ini szFile = TARGETDIR_DATA ^ "Config" ^ "OpalCtrl.ini"; // OpalCtrl.ini could be readonly ChangeFileAttributes(); if( GetProfString( szFile, "devices", "device1", svResult ) = 0 ) then svCurrentPath = ""; listID = ListCreate( STRINGLIST ); StrGetTokens( listID, svResult, "," ); nRc = ListGetFirstString( listID, svString ); while( nRc != END_OF_LIST && StrCompare( svCurrentPath, "" ) = 0 ) ParsePath( svCurrentPath, svString, PATH ); nRc = ListGetNextString( listID, svString ); endwhile; ListDestroy( listID ); // substitute the current path by the right one if they are different svNewPath = TARGETDIR ^ "bin\\"; if( StrCompare( svCurrentPath, "" ) != 0 && StrCompare( svCurrentPath, svNewPath ) != 0 ) then listID = ListCreate( STRINGLIST ); if( ListReadFromFile( listID, szFile ) = 0 ) then nRc = ListGetFirstString( listID, svString ); while( nRc != END_OF_LIST ) // replace all ocurrences of the current path by the // right one pos = StrFind( svString, svCurrentPath ); while( pos >= 0 ) StrSub( svTmp, svString, 0, pos ); svTmp = svTmp + svNewPath; nIndexDest = StrLength( svTmp ); nIndexSrc = pos + StrLength( svCurrentPath ); nCount = StrLength( svString ) - pos - StrLength( svCurrentPath ); CopyBytes( svTmp, nIndexDest, svString, nIndexSrc, nCount ); svString = svTmp; ListSetCurrentString( listID, svString ); pos = StrFind( svString, svCurrentPath ); endwhile; nRc = ListGetNextString( listID, svString ); endwhile; endif; ListWriteToFile( listID, szFile ); ListDestroy( listID ); endif; endif; end; |
Hier ist ein bisschen mehr drin, als Du brauchst, aber Du musst die Textdatei in eine Liste auslesen und dann kannst Du Dir mit der Liste Deine Zeilen angucken und ggf. Ersetzungen vornehmen. Die Liste kannst Du dann in die zweite Datei schreiben.
Gruss
Rita