Programim dhe zhvillim, javascript, python, php, html

Kërkimi i pozicionit të transmetuesit [dublikatë]

Po përpiqem të shkruaj në një skedar teksti të dhënat e mëposhtme:

 TEXTed       00:01:27    8.0 xxxxxxx         Some test
 TEXTed       00:01:35  251.0 xxxxxxx         Some text

Unë jam duke përdorur streamwriter, fillimisht duke ndërtuar vargun tim dhe më pas duke shkruar në skedar:

                var v15timeString = item.Duration;
                var v15fileString = "             " + item.Time + "       ";
                v15SR.Write(v15fileString);
                var durLength = item.Duration.Length;
                v15SR.BaseStream.Position = -durLength;
                v15SR.WriteLine(item.Duration);

Problemi që kam është për 8.0, 251.0 Si t'i fshini këto. Unë dua të ruaj 0.0 për këtë në të gjitha linjat. Në terma të thjeshtë, kjo kolonë duhet të jetë e rreshtuar djathtas. Unë jam duke iu referuar kësaj si item.duration në kodin tim si më sipër.

Bëra një përpjekje si më sipër duke bërë një streamreader.BaseStream.Position = -durLength, por .Pozicioni nuk merr një numër negativ. Si mund të kërkoj mbrapa pas v15filestring, bazuar në durLength, dhe më pas të shkruaj item.Duration

Duke mbajtur parasysh që unë duhet ta ruaj rreptësisht këtë kolonë ashtu siç është rreshtuar majtas në skedarin e tekstit siç tregohet në mostrën time më lart.

Ju lutemi ndihmoni. Faleminderit.


  • Me sa duket ju duhet të lexoni rreth String.Format dhe të gjitha opsionet e gjerësisë të ofruara në specifikuesit e formatimit... Përpjekja për të përditësuar pozicionin e rrymës së brendshme të TextWriter mund të mos funksionojë siç duhet nëse shkrimtari nuk e pastron përmbajtjen DHE është dhimbje e madhe të llogaritet kompensimi i saktë në bajt për vargjet utf8. 24.06.2014
  • @AlexeiLevenkov: String.format, është rruga për të shkuar në rastin tim. ju lutem postojeni këtë si përgjigje që të mund ta pranoj. Faleminderit shumë 25.06.2014

Përgjigjet:


1

Ju mund të përdorni PadLeft në vend të hapësira të rastësishme

për shembull

var v15fileString = item.Time.ToString().PadLeft(21);
//and
v15SR.WriteLine(item.Duration.ToString().PadLeft(8));

Shënim: Siç ka thënë Ian, do të ishte më mirë që fillimisht të ndërtohet vargu, pastaj të shkruhet rreshti

24.06.2014
  • Nuk mund të kaloj te artikulli.kohëzgjatja, sepse gjatësia ndryshon gjithmonë. Nëse e vendos jastëkun 8 gjithmonë, nuk do të rreshtohej siç duhet. 24.06.2014
  • @user726720 - 8 është një numër arbitrar, do ta bëjë gjerësinë totale 8 karaktere të gjatë pavarësisht nga gjatësia (për aq kohë sa gjatësia ‹= në këtë numër) 24.06.2014

  • 2

    String.Format ju lejon të specifikoni gjerësinë e fushës së bashku me shumë opsione të tjera. Kodi i përafërt do të ishte:

     writer.Write(String.Format("{0,10} "{1, 15}", field1, field2));
    

    Fragment nga artikulli i MSDN:

    Sintaksa e përgjithshme e një artikulli të formatit është:

    {index[,alignment][: formatString]}
    

    ku rreshtimi është një numër i plotë i nënshkruar që përcakton gjerësinë e fushës. Nëse kjo vlerë është negative, teksti në fushë është rreshtuar majtas. Nëse është pozitiv, teksti është rreshtuar djathtas.

    Shënim: Përpjekja për të përditësuar pozicionin e rrymës së brendshme të TextWriter mund të mos funksionojë siç duhet nëse shkrimtari nuk e pastron përmbajtjen. Është dhimbje e madhe për të llogaritur kompensimin e saktë në bajt për vargjet utf8 (që është kodimi i parazgjedhur për shkrimtarët e testeve .Net).

    25.06.2014
    Materiale të reja

    Masterclass Coroutines: Kapitulli-3: Anulimi i korutinave dhe trajtimi i përjashtimeve.
    Mirë se vini në udhëzuesin gjithëpërfshirës mbi Kotlin Coroutines! Në këtë seri artikujsh, unë do t'ju çoj në një udhëtim magjepsës, duke filluar nga bazat dhe gradualisht duke u thelluar në..

    Faketojeni derisa ta arrini me të dhënat false
    A e gjeni ndonjëherë veten duke ndërtuar një aplikacion të ri dhe keni nevojë për të dhëna testimi që duken dhe duken më realiste ose një grup i madh të dhënash për performancën e ngarkesës...

    Si të përdorni kërkesën API në Python
    Kërkesë API në GitHub për të marrë depot e përdoruesve duke përdorur Python. Në këtë artikull, unë shpjegoj procesin hap pas hapi për të trajtuar një kërkesë API për të marrë të dhëna nga..

    Një udhëzues hap pas hapi për të zotëruar React
    Në këtë artikull, do të mësoni se si të krijoni aplikacionin React, do të mësoni se si funksionon React dhe konceptet thelbësore që duhet të dini për të ndërtuar aplikacione React. Learning..

    AI dhe Psikologjia — Pjesa 2
    Në pjesën 2 të serisë sonë të AI dhe Psikologji ne diskutojmë se si makineritë mbledhin dhe përpunojnë të dhëna për të mësuar emocione dhe ndjenja të ndryshme në mendjen e njeriut, duke ndihmuar..

    Esencialet e punës ditore të kodit tim VS
    Shtesat e mia të preferuara - Git Graph 💹 Kjo shtesë është vërtet e mahnitshme, e përdor përpara se të filloj të punoj për të kontrolluar dy herë ndryshimet dhe degët më të fundit, mund të..

    Pse Python? Zbulimi i fuqisë së gjithanshme të një gjiganti programues
    Në peizazhin gjithnjë në zhvillim të gjuhëve të programimit, Python është shfaqur si një forcë dominuese. Rritja e tij meteorike nuk është rastësi. Joshja e Python qëndron në thjeshtësinë,..