public short dfwopen(string fileName, string fldDelimiter, string strDelimiter, int append, string encoding) { if (_writeStatus != FileIOStatus.Closed) { GXLogging.Error(log, "Error ADF0005: open function in use"); return(GX_ASCDEL_INVALIDSEQUENCE); } try { FileMode mode = FileMode.Create; if (append == 1) { mode = FileMode.Append; } fileName = Path.Combine(GxContext.StaticPhysicalPath(), fileName); #pragma warning disable SCS0018 // Path traversal: injection possible in {1} argument passed to '{0}' _fsw = new FileStream(fileName, mode, FileAccess.Write, FileShare.ReadWrite, 1024); #pragma warning restore SCS0018 // Path traversal: injection possible in {1} argument passed to '{0}' } catch (DirectoryNotFoundException e) { GXLogging.Error(log, "Error ADF0001", e); return(GX_ASCDEL_OPENERROR); } _fldDelimiterW = CleanDelimiter(fldDelimiter); _strDelimiterW = strDelimiter; _encodingW = encoding; _sw = new StreamWriter(_fsw, GXUtil.GxIanaToNetEncoding(encoding, false)); _currentLineW = null; _writeStatus = FileIOStatus.Open; return(GX_ASCDEL_SUCCESS); }
public short dfropen(string fileName, int recSize, string fldDelimiter, string strDelimiter, string encoding) { if (_readStatus != FileIOStatus.Closed) { GXLogging.Error(log, "Error ADF0005: open function in use"); return(GX_ASCDEL_INVALIDSEQUENCE); } fileName = Path.Combine(GxContext.StaticPhysicalPath(), fileName); try { _fsr = new FileStream(Path.GetFullPath(fileName), FileMode.Open, FileAccess.Read, FileShare.ReadWrite, 1024); } catch (FileNotFoundException fe) { GXLogging.Error(log, "Error ADF0001", fe); return(GX_ASCDEL_OPENERROR); } catch (DirectoryNotFoundException de) { GXLogging.Error(log, "Error ADF0001", de); return(GX_ASCDEL_OPENERROR); } _fldDelimiterR = CleanDelimiter(fldDelimiter); _strDelimiterR = strDelimiter; _encodingR = encoding; _sr = new StreamReader(_fsr, GXUtil.GxIanaToNetEncoding(encoding, false)); _lastPos = 0; _readStatus = FileIOStatus.Open; return(GX_ASCDEL_SUCCESS); }
int appendFld(string s) { if (_currentLineW == null) { _currentLineW = s; } else { _currentLineW = _currentLineW + _fldDelimiterW + s; } _writeStatus = FileIOStatus.DataReady; return(0); }
public short dfwclose() { if (_writeStatus == FileIOStatus.Closed) { return(GX_ASCDEL_INVALIDSEQUENCE); } try { _sw.Close(); _fsw.Close(); _writeStatus = FileIOStatus.Closed; } catch { } return(GX_ASCDEL_SUCCESS); }
public short dfrclose() { if (_readStatus == FileIOStatus.Closed) { return(GX_ASCDEL_INVALIDSEQUENCE); } try { _sr.Close(); _fsr.Close(); _readStatus = FileIOStatus.Closed; } catch { } return(GX_ASCDEL_SUCCESS); }
public short dfwnext() { if (_writeStatus != FileIOStatus.DataReady) { return(GX_ASCDEL_INVALIDSEQUENCE); } try { if (_currentLineW != null) { _sw.WriteLine(_currentLineW); _currentLineW = null; } _writeStatus = FileIOStatus.Open; return(GX_ASCDEL_SUCCESS); } catch (Exception ex) { GXLogging.Error(log, "Error ADF0003", ex); return(GX_ASCDEL_WRITEERROR); } }
public short dfrnext() { _readStatus = FileIOStatus.Open; if (_readStatus == FileIOStatus.Closed) { return(GX_ASCDEL_INVALIDSEQUENCE); } try { _currentLineR = _sr.ReadLine(); } catch (Exception e) { GXLogging.Error(log, "Error ADF0002", e); } if (_currentLineR == null) { return(GX_ASCDEL_ENDOFDATA); } _lastPos = 0; _readStatus = FileIOStatus.DataReady; return(GX_ASCDEL_SUCCESS); }