charm2simbatch.pl
上传用户:center1979
上传日期:2022-07-26
资源大小:50633k
文件大小:1k
源码类别:

OpenGL

开发平台:

Visual C++

  1. #!/usr/bin/perl
  2. # Builds a SIMBATCH script to get HIP identifiers for CHARM2 stars
  3. # should be run in the same folder as charm2.dat
  4. open CHARM2, '<', 'charm2.dat' or die "Could not open file charm2.datn";
  5. %Sources = ();
  6. %SAOs = ();
  7. while($curLine = <CHARM2>) {
  8. chomp $curLine;
  9. next if($curLine eq '');
  10. $Type = Trim(substr($curLine, 25, 4));
  11. next if($Type eq 'UR');
  12. $UD = Trim(substr($curLine, 143, 6));
  13. $LD = Trim(substr($curLine, 162, 6));
  14. next if(($UD eq '') && ($LD eq ''));
  15. @Ids = (
  16. Trim(substr($curLine, 30, 24)),
  17. Trim(substr($curLine, 54, 24)),
  18. Trim(substr($curLine, 79, 24)),
  19. Trim(substr($curLine, 104, 24))
  20. );
  21. $Source = $Ids[$0];
  22. $Source =~ s/s//g;
  23. if(!exists $Sources{$Source}) {
  24. $numStars++;
  25. $Sources{$Source} = $Ids[$0];
  26. } else {
  27. $Sources{$Source} = $Ids[$0] if($Source ne $Ids[$0]);
  28. }
  29. }
  30. close CHARM2;
  31. open SIMSCRIPT, '>', 'charm2.simbatch' or die "Could not write script file to charm2.simbatchn";
  32. open IDLIST, '>', 'idlist.txt' or die "Could not write identifiers list to idlist.txtn";
  33. print SIMSCRIPT "format obj "%IDLIST(S;HIP)\n"nn";
  34. foreach $s (sort keys %Sources) {
  35. print SIMSCRIPT "$Sources{$s}n";
  36. print IDLIST "$sn";
  37. }
  38. close SIMSCRIPT;
  39. close IDLIST;
  40. sub Trim {
  41. $st = shift;
  42. $st =~ s/^s+//;
  43. $st =~ s/s+$//;
  44. return $st;
  45. }