1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
|
using System;
using System.Collections.Generic;
using System.Text;
namespace SandBox
{
class Program
{
static void Main(string[] args)
{
Operation operation = new Operation();
operation.Load("02200002200614123540111111111111111183203 totototo ZZZZZZZZZZZZZZZ Virement 000000645029");
Console.WriteLine("N° Compte : {0}", operation["N° Compte"]);
Console.WriteLine("Date du Jour : {0}", operation["Date du Jour"]);
Console.WriteLine("Nom et P : {0}", operation["Nom et P"]);
Console.ReadKey();
}
}
struct FieldDefinition
{
public string Name;
public int Length;
}
abstract class LineLoader
{
protected List<FieldDefinition> fielddefinitions;
private string[] data;
public void Load(string line)
{
data = new string[fielddefinitions.Count];
int index = 0;
for (int i = 0, cpt = fielddefinitions.Count; i < cpt; i++)
{
data[i] = line.Substring(index, fielddefinitions[i].Length);
index += fielddefinitions[i].Length;
}
}
private int getfieldindex(string name)
{
for (int i = 0, cpt = fielddefinitions.Count; i < cpt; i++)
{
if (fielddefinitions[i].Name == name)
{
return i;
}
}
throw new KeyNotFoundException();
}
public string this[int index]
{
get
{
return data[index];
}
set
{
data[index] = value;
}
}
public string this[string fieldname]
{
get
{
return data[getfieldindex(fieldname)];
}
set
{
data[getfieldindex(fieldname)] = value;
}
}
}
class Operation : LineLoader
{
public Operation()
{
fielddefinitions = new List<FieldDefinition>();
fielddefinitions.Add(new FieldDefinition() { Name = "Code Opération", Length = 2 });
fielddefinitions.Add(new FieldDefinition() { Name = "N° E", Length = 1 });
fielddefinitions.Add(new FieldDefinition() { Name = "N° Séquence", Length = 5 });
fielddefinitions.Add(new FieldDefinition() { Name = "Date du Jour", Length = 6 });
fielddefinitions.Add(new FieldDefinition() { Name = "Code", Length = 5 });
fielddefinitions.Add(new FieldDefinition() { Name = "Code Guichet", Length = 5 });
fielddefinitions.Add(new FieldDefinition() { Name = "N° Compte", Length = 12 });
fielddefinitions.Add(new FieldDefinition() { Name = "Clé RIB", Length = 2 });
fielddefinitions.Add(new FieldDefinition() { Name = "Matricule", Length = 7 });
fielddefinitions.Add(new FieldDefinition() { Name = "Nom et P", Length = 24 });
fielddefinitions.Add(new FieldDefinition() { Name = "Libellé B", Length = 17 });
fielddefinitions.Add(new FieldDefinition() { Name = "Libellé O", Length = 30 });
fielddefinitions.Add(new FieldDefinition() { Name = "Montants", Length = 12 });
}
}
} |
Partager