[dba-VB] C# replace a special character

Stuart McLachlan stuart at lexacorp.com.pg
Tue Oct 20 16:28:39 CDT 2009


200 megabytes tirivial.

I just knocked this up in PowerBasic (this is the complete program!):

#COMPILE EXE
#DIM ALL
FUNCTION PBMAIN () AS LONG
    LOCAL strFile AS STRING
    LOCAL lngSTart AS LONG
    LOCAL strData AS STRING
    strFile = "ML_Data.mdb"
    lngStart = TIMER
    OPEN strFile FOR BINARY AS #1
    GET$ #1, LOF(1), strData
    CLOSE #1
    REPLACE "A" WITH "B" IN strData
    OPEN strfile & "fixed" FOR BINARY as#1
    PUT$ #1, strData
    CLOSE #1
    MSGBOX "It took " & STR$(TIMER - lngstart) & " seconds"
END FUNCTION
           
It compiles to an 11KB executable with no dependencies.

It took 18 seconds to process ML_Data.mdb which is 774MB in size.  Most of that time was 
taken in reading and writing the file to/from memory.

  
-- 
Stuart


On 20 Oct 2009 at 15:53, jwcolby wrote:

> It is my guess that Regex will be too slow.  This will be a file with about 100 characters average 
> per line, 2 million lines.  Doing this in one big read MIGHT be possible (and I will try) but 
> reading in 200 million bytes all at once could cause issues.
> 
> John W. Colby
> www.ColbyConsulting.com
> 
> 
> Jack and Pat wrote:
> > John,
> > 
> > I did a google search to find this link. I'm not a C# person, but thought
> > I'd pass this on
> > 
> > http://dotnetperls.com/regex-replace-1
> > 
> > -----Original Message-----
> > From: dba-vb-bounces at databaseadvisors.com
> > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby
> > Sent: Tuesday, October 20, 2009 11:45 AM
> > To: VBA
> > Subject: [dba-VB] C# replace a special character
> > 
> > I have a file which contains a sprinkling of a special character - decimal
> > 26, hex 1A (the SUB 
> > character).  This special character in the CSV file output to Accuzip causes
> > Accuzip to hiccup.  In 
> > order to get on with my life I need to pre-process the files to get rid of
> > this special character. 
> > Because of the size of these files (hundreds of mbytes) I need to do a
> > readline / replace / 
> > writeline kind of thing.  I think I need to use the stringbuilder.replace
> > but I do not know how to 
> > specify replacing this hex 1A with something else.  The something else would
> > ideally be nothing 
> > (empty string) but can be any valid alpha character (A, B etc).
> > 
> > Can anyone help me with this replace part of the problem.  C# syntax please.
> > 
> _______________________________________________
> dba-VB mailing list
> dba-VB at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/dba-vb
> http://www.databaseadvisors.com
> 





More information about the dba-VB mailing list