Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Zahlen aus einer .txt-Datei sortieren und erneut abspeichern

Frage Entwicklung Batch & Shell

Mitglied: wemdas

wemdas (Level 1) - Jetzt verbinden

17.01.2010 um 13:09 Uhr, 6491 Aufrufe, 5 Kommentare, 1 Danke

Hallo zusammen,

eine Frage an dieses Forum, weil ich so langsam verzweifle. Ich bin blutiger Anfänger und habe alles was ich bisher kann aus diesem Forum gelernt. Dafür mal herzlichen Dank.

Nun habe ich allerdings folgendes problem (bitte nicht steinigen, wenn es für Euch kein Problem darstellt):
Ich möchte eine .txt-Datei auslesen und sortiert eneut abspeichern. Meine .txt-Datei enthält nur Zahlen, die bei meiner Sortiermethode Ziffernweise sortiert werden. Ich möchte aber die komplette Zahl sortiert darstellen.
Bsp.:
Ausgangsdatei (result.txt) mit
150
150
700
90
1
8
7

wird mit meiner Batch so dargestellt/sortiert und in die Datei sort.txt geschrieben:
1
150
150
7
700
8
90

so sollte es nach meinen Vorstellungen eigentlich aussehen:
1
7
8
90
150
150
700


mein Batch sieht folgendermaßen aus:
echo off &setlocal enabledelayedexpansion
set Ziel1=result.txt
for /f "usebackq tokens=1 delims= " %%a in ("%Ziel1%") do sort "%Ziel1%" /O c:\odr\sort.txt


Worin liegt mein Fehler??
Kann mir jemand helfen? Herzlichen Dank schon mal im Voraus.
Mitglied: bastla
17.01.2010 um 14:11 Uhr
Hallo wemdas!

Fehler ist es eigentlich keiner - "sort" ist einfach nur für die Verarbeitung alphanumerischer Daten gedacht ...

So sollte es aber gehen:
01.
@echo off & setlocal enabledelayedexpansion 
02.
set "Ein=result.txt" 
03.
set "Aus=c:\odr\sort.txt" 
04.
 
05.
set "Blanks=            " 
06.
set T=%temp%\result.tmp 
07.
del %T% 2>nul 
08.
for /f "usebackq" %%i in ("%Ein%") do ( 
09.
    set "Z=%Blanks%%%i" 
10.
    >>%T% echo !Z:~-12%! 
11.
12.
sort %T% /O %T% 
13.
 
14.
del "%Aus%" 2>nul 
15.
for /f %%i in (%T%) do >>"%Aus%" echo\%%i
Die 12 Leerzeichen sind willkürlich gewählt - für Deine Testdaten hätten bereits 2 gereicht. Und nur zur Sicherheit: Dezimalzahlen mit unterschiedlicher Anzahl von Stellen hinter dem Komma lassen sich so nicht sortieren.

Grüße
bastla
Bitte warten ..
Mitglied: rubberman
17.01.2010 um 15:27 Uhr
Moin wemdas und bastla

hatte das ganze auch schon mal mit Schleifen gelöst.
Ist aber noch ausbaufähig und ua. anfällig bei Leerzeilen.

01.
@echo off &setlocal enabledelayedexpansion 
02.
set "Ein=result.txt" 
03.
set "Aus=c:\odr\sort.txt" 
04.
 
05.
for /f "delims=: tokens=1*" %%i in ('findstr /n . "%Ein%"') do set /a zahl%%i=%%j &set /a n=%%i 
06.
for /l %%i in (1,1,%n%) do ( 
07.
  for /l %%j in (1,1,%n%) do ( 
08.
    if !zahl%%i! lss !zahl%%j! ( 
09.
      set /a temp=!zahl%%i! 
10.
      set /a zahl%%i=!zahl%%j! 
11.
      set /a zahl%%j=!temp! 
12.
13.
14.
15.
type nul>"%Aus%" 
16.
for /l %%i in (1,1,%n%) do ( 
17.
  >>"%Aus%" echo !zahl%%i! 
18.
)
Grüße
rubberman
Bitte warten ..
Mitglied: bastla
17.01.2010 um 16:29 Uhr
@rubberman
Bubblesort in Batch - das is ja mal hybsch ((c) by geTuemII) ...
Zu Leerzeilen: Derartiges fällt in meinem Ansatz oben unter "unerwünscht" und wird stillschweigend eliminiert - falls die Leerzeilen allerdings als erhaltenswert betrachtet würden, müsste ich ebenfalls die "findstr"-Schreibweise verwenden:
01.
@echo off & setlocal enabledelayedexpansion 
02.
set "Ein=result.txt" 
03.
set "Aus=c:\odr\sort.txt"  
04.
 
05.
set "Blanks=            " 
06.
set T=%temp%\result.tmp 
07.
del %T% 2>nul 
08.
for /f "delims=: tokens=1*" %%i in ('findstr /n "^" "%Ein%"') do ( 
09.
    set "Z=%Blanks%%%j" 
10.
    >>%T% echo\!Z:~-12%! 
11.
12.
sort %T% /O %T% 
13.
 
14.
del "%Aus%" 2>nul 
15.
for /f "tokens=1* delims=: " %%i in ('findstr /n "^" "%T%"') do >>"%Aus%" echo\%%j
Ergebnis wäre, dass alle Leerzeilen natürlich an den Anfang der Datei wandern ...

Grüße
bastla
Bitte warten ..
Mitglied: rubberman
17.01.2010 um 18:40 Uhr
Zitat von bastla:
@rubberman
Bubblesort in Batch - das is ja mal hybsch ((c) by
geTuemII) ...

Na wenn dem so ist - das Copyright darf ich natürlich nicht außer Kraft setzten
Kenne den Beitrag von geTuemII allerdings nicht.

Grüße
rubberman

<edit>this post was written by Miss Verständnis</edit>
Bitte warten ..
Mitglied: bastla
17.01.2010 um 21:26 Uhr
@rubberman
[OT] Das Copyright bezog sich nur auf "hybsch" ... [/OT]

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Mit DIR-Befehl Zahlen normal literarisch sortieren
gelöst Frage von evinbenBatch & Shell14 Kommentare

Hallo, in einem Verzeichnis muss geprüft werden welche JPG-Datei die höchste Zahl hat am Anfang im Dateinamen hat und ...

Batch & Shell
Zahlen von Internetseite suchen und in txt-Datei speichern
gelöst Frage von Nick.BBatch & Shell7 Kommentare

Hallo, Ich wollte auf der Internetseite XY einen Wort z.B. Preis suchen und die dahinterstehende Zahl in eine txt-Datei ...

Batch & Shell
Txt auslesen zähler hinzufügen
gelöst Frage von NewNoobBatch & Shell9 Kommentare

Und zwar möchte ich eine batch schreiben in dem ich alle verknüpfungen suche und dann lösche ausser in bestimmten ...

Batch & Shell
Bildung von Mittelwert diverser Zahlen aus einer txt-Datei
gelöst Frage von Sven289Batch & Shell7 Kommentare

Hallo, ich habe folgendes Problem, bei dem ich nicht so recht weiß, wie man es anpacken soll. Ich weiß ...

Neue Wissensbeiträge
Mac OS X

MacOS wo ist die Tilde ?

Tipp von Alchimedes vor 46 MinutenMac OS X

Hallo, ich hab eine MacOS qwertz Keyboard auf US Layout umgestellt da die Sonderzeichen besser ereichbar sind. Leider fehlt ...

Datenschutz

Weitere Inforamtionen zum Sicherheitsproblem BeA

Information von Penny.Cilin vor 7 StundenDatenschutz

Im folgenden ein weiterer Bericht über die Sicherheitsprobleme von Bea. Fataler Konstruktionsfehler im besonderen elektronischen Anwaltspostfach Gruss Penny

Windows 10

Systemdienste behalten nach Win10 inplace-Upgrade nicht die ggf. modifizierte Startart bei

Tipp von DerWoWusste vor 9 StundenWindows 103 Kommentare

Stellt Euch vor, Ihr habt ein Win10 System und modifiziert dort die Startart von Systemdiensten. Zum Beispiel wollt Ihr ...

Microsoft Office

Deaktivieren von Startbildschirm und Backstage-Ansicht in Office 2016 per Batch-Datei

Anleitung von SarekHL vor 12 StundenMicrosoft Office17 Kommentare

Guten Morgen zusammen! Ich habe mir gestern (auch mit Hilfe dieses Boards) ein Script gebastelt, um in Office 2016 ...

Heiß diskutierte Inhalte
Netzwerke
NTFS-Berechtigung
Frage von Daoudi1973Netzwerke23 Kommentare

Hallo zusammen und frohes neues Jahr (Sorry, ich bin spät dran) Meine Frage: 1- Ich habe einen Ordner im ...

Batch & Shell
AD-Abfrage in Batchdatei und Ergebnis als Variable verarbeiten
gelöst Frage von Winfried-HHBatch & Shell19 Kommentare

Hallo in die Runde! Ich habe eine Ergänzungsfrage zu einem alten Thread von mir. Ausgangslage ist die Batchdatei, die ...

Microsoft Office
Deaktivieren von Startbildschirm und Backstage-Ansicht in Office 2016 per Batch-Datei
Anleitung von SarekHLMicrosoft Office17 Kommentare

Guten Morgen zusammen! Ich habe mir gestern (auch mit Hilfe dieses Boards) ein Script gebastelt, um in Office 2016 ...

Windows 10
Netbook erkennt Soundkarte nicht - keinerlei Info zum Hersteller und Modell vom Netbook und Hardware bekannt
Frage von fyrb38Windows 1017 Kommentare

Guten Tag, meine Schwester reist in einigen Wochen für ein paar Monate ins Ausland und hat sich dafür ein ...