Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[C#] Replace werkt niet

Pagina: 1
Acties:

  • Rainmaker1987
  • Registratie: Juni 2005
  • Laatst online: 08-12-2024
Om gegevens naar een .csv bestand te schrijven maakt ik gebruik van de volgende code in C#

C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
                foreach (DataColumn dc in relatie_gegevens2.Columns)
                {
                    if (dc.ColumnName != "gedaan")
                    {
                        string value = Convert.ToString(dr[dc]);
                        value.Replace("\n", "");
                        value.Replace("\r", "");
                        value.Replace("\r\n", "");
                        value.Replace("\t","");
                        relatie_gegevens.Write(value);
                        relatie_gegevens.Write(";");
                    }
                }

                relatie_eigenschappen.Write("\r\n");


De replace functies zouden imho alle nieuwe regels moeten verwijderen behalve aan het einde van de rij waar er specifiek \r\n wordt ingevoerd. Helaas werkt het niet. De volgende code wordt eruit gegooid:

code:
1
2
2000001;5000001;1000001
;Janssen;J.F.;;1966-12-06;010-4740113;06-41542168;;;0;0;0;2000002;5000002;1000002

De enter hoort pas te komen voor 2000002

Ben ik één van de opties vergeten of klopt mijn codewerk gewoon niet? Andere methodes voor een nieuwe regel als \r \n en \t (de laatste net gevonden) ken ik niet en heb ik ook niet gevonden.

  • sig69
  • Registratie: Mei 2002
  • Laatst online: 18:53
Replace bewerkt niet een string, maar geeft een string terug. Dus je moet doen:
C#:
1
2
value = value.Replace("\n", "");
// etc

[ Voor 13% gewijzigd door sig69 op 11-04-2008 12:24 ]

Roomba E5 te koop


  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
ter aanvulling op sig69:

Dat is zo met alle String Functions aangezien een string Immutable is. Dat betekend dat je een string niet kunt wijzigen. Als je een bewerking wilt doen zul je dus een nieuwe string aan moeten maken. Als je veel string operaties doet kan dit veel resources kosten en daar is de StringBuilder voor uitgevonden ( Wat eigenlijk gewoon een buffer van characters is waar je wel wijzigingen op kunt uitvoeren ).

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • Hydra
  • Registratie: September 2000
  • Laatst online: 06-10 13:59

https://niels.nu


  • Rainmaker1987
  • Registratie: Juni 2005
  • Laatst online: 08-12-2024
Het kon ook niet anders dan zo'n domme fout zijn. Tis inmiddels aangepast en werkzaam. C# is vrij nieuw voor me en heb de replace functie alleen nog maar in een directe Write functie gebruikt waarbij het uiteraard wel werkt.